pytorch卷积神经网络学习过程记录

网络模型搭建阶段
卷积过程相当于特征提取过程,对于一张3x224x224图像而言,如果采用N个大小为11x11(kernel_size),步长为4(stride),边缘填充padding为2的卷积核,那么输出为Nx55x55。

  • 计算公式为out_channel = (in_channel - kernel_size + 2*padding) / stride + 1

输出尺寸若为小数,默认下采样,即取整数部分。
一般卷积过后要加激活函数nn.ReLU()或者其他,
池化层一般以最大池化为主,池化核若为2,默认步长为2,计算公式与卷积输出计算公式相同,默认也是下采样。
由于彩色图像数据为三维数据,卷积池化操作结束后,需要将数据平展开来以进行全连接操作,最后一个全连接层的输出为分类数量。

模型训练阶段
处理图片数据集时,先datasets.ImageFolder对图像进行标准化处理并读入,再利用torch.utils.data.DataLoader载入数据。

模型训练一般分为以下步骤:读入数据–>传入网络–>计算损失–>梯度清零–>反向传播–>梯度更新

模型测试时记得加with torch.no_grad():,不加会报错,模型测试步骤为读入数据–>传入网络–>计算损失

模型预测阶段
载入模型预测时要将图像处理成与训练时一样的形式,一般为resize,归一化到[0,1]之间,标准化处理,维度拓展torch.unsqueeze操作

你可能感兴趣的:(pytorch,cnn,深度学习)