模块创建的代码的展示
import torch.nn as nnimport torch.nn.functional as Fclass LeNet(nn.Module):#卷积网络的搭建def __init__(self):super(LeNet, self).__init__()self.conv1 = nn.Conv2d(3,16,5)#第一个参数表示上通道输入,16个卷积核,卷积核大小5x5self.pool1 = nn.MaxPool2d(2,2)#下采样层,也就是池化层self.conv2 = nn.Conv2d(16,32,5)self.pool2 = nn.MaxPool2d(2,2)#三层的全连接层self.fc1 = nn.Linear(32*5*5,120)self.fc2 = nn.Linear(120,84)self.fc3 = nn.Linear(84,10)#卷积网络的前景路线的定义def forward(self,x):x = F.relu(self.conv1(x))x = self.pool1(x)x = F.relu(self.conv2(x))x = self.pool2(x)x = x.view(-1,32*5*5)#将数据进行展平x = F.relu(self.fc1(x))x = F.relu(self.fc2(x))x = self.fc3(x)return x
在该函数中的数据的每一层的输入和输出的大小的关系如下图所示
该代码的实际意义与前面学习过的tensorflow的卷积神经网络的原理一模一样,只是写法上的差异,可以取参考之前的tensorflow和keras关于卷积神经网络的介绍
对于神经网络之中的batch_size参数的理解
对于过大的batch_size会给计算机带来十分巨大的计算量,增加计算机负担
而对于过于小的batch_size得到的结果的泛化程度不够,无法代表数据的一些特征值
所以要设置大小适中的batch_size值,表示每一批次处理的数据的量。
最终的结果展示

从最终的结果展示中可以看出,loss的之在不断的减小,而对应的accuracy在不断增加,使得模型训练的更加有效。
