经典神经网络之LeNet
前言:卷积层的输入要求卷积层对图像的输入顺序有要求,[batch, channel, height, width],当图片为灰度图是,第一层卷积的in_channels=1,后续out_channels=卷积核数量 图片原本的顺序是(height, width, channels),需要用permute来处理,并且将数值转换为浮点型 卷积、矩阵乘法等可能无法正确处理非浮点类型的数据。 一、网络结构解读 模型在手写数字识别上具有良好的效果,但是结构较为简单,只涉及卷积,池化,全连接的线性排列,这里不做过多介绍,毕竟神经网络这些参数可解释性都很差,学习他的搭建结构就好 输出特征图的参数计算比较简单,主要是在第一层全连接层的输入那里需要填。 1.1 线性层的最后输出 值得一提的是在 LeNet 模型中,最后一个线性层的输出是一个大小为 10 的向量,这些输出值被称为 logits。这些 logits 是模型对输入图像属于每个类别的原始预测值,还没有经过 Softmax 函数处理。 真正传入softmax,将预测值转变为概率是在训练阶段的交叉熵函数中$$\text{...
卷积神经网络(CNN)原理
前言:何为卷积神经网络卷积神经网络是一种深度学习模型,包括了卷积层,激活函数,池化层以及全连接层等等,他的设计灵感来自于生物学中的视觉系统,旨在模拟人类视觉处理的方式。 CNN的三大特性:局部连接,权重共享,池化 一、卷积层1.1 卷积过程卷积层的主要作用是提取输入数据中的局部特征 这张动画中蓝色的框就是指一个数据窗口,红色框为卷积核(滤波器),最后得到的绿色方形就是卷积的结果(卷积操作是通过滑动卷积核,在每个局部区域上进行“先乘再和”的运算,最终生成一个特征图,每个输出值是一个标量。) 1.2 卷积层的作用以及涉及的超参数详解卷积层主要用来提取局部特征。 在实际使用中涉及到的参数有: 卷积核大小:决定了卷积核覆盖的局部区域大小,影响特征提取的粒度。较小的卷积核可以捕捉更细粒度的特征,适合提取边缘和纹理;较大的卷积核可以捕捉更广泛的特征,但计算量更大。 卷积核形状参数一定要是奇数,因为奇数大小的卷积核具有唯一的中心像素,便于在卷积操作中均匀取样并保持对称性,同时有助于处理图像边缘,避免模糊和信息损失。 步长:每次滑动的位置,控制卷积核每次移动的像素数,影响输出特征图的尺寸 填...
个人博客第一次提交
个人博客第一次提交,老天保佑千万别报错啊!!! 再来个代码: 123456789101112131415161718192021222324252627282930313233343536373839404142import torchimport torchvisionimport torch.nn as nnfrom torchsummary import summaryclass Network(nn.Module): def __init__(self, input_size,output_size): super(Network,self).__init__() self.model = nn.Sequential( nn.Flatten(), nn.Linear(input_size,512), nn.BatchNorm1d(512), nn.ReLU(), nn.Linear(512,256), nn....