pytorch官方demo实例(搭建Lenet并基于CIFAR10训练)
demo教程来自官网 Training a Classifier
model.py文件
import torch.nn as nn
import torch.nn.functional as F
class LeNet(nn.Module):#搭建模型第一步,定义类LeNet,需继承nn.module副类
def __init__(self):#初始化函数,实现搭建模型需要的网络层结构
super(LeNet, self).__init__()#使用super函数,解决在多重继承中调用副类中出现的问题
self.conv1 = nn.Conv2d(3, 16, 5)#nn.Conv2d定义卷积层 第一参数代表输入特征层的参数,16个卷积核,卷积核的尺寸5x5
self.pool1 = nn.MaxPool2d(2, 2)#池化核大小为2 x 2 步距也为2 经过最大池化将高度和宽度缩减为原来一半,池化层只改变特征矩阵的高和宽
self.conv2 = nn.Conv2d(16, 32, 5)#定义第二个卷积层,输入特征层深度为16,32个卷积核,卷积深度为5x5
self.pool2 = nn.MaxPool2d(2, 2)#同上
self.fc1 = nn.Linear(32*5*5, 120)#全连接层,输入为一维向量,需要将得到的特征矩阵展平,第一层节点个数为120
self.fc2 = nn.Linear(120, 84)#第二层84个节点
self.fc3 = nn.Linear