LeNet
基本结构
输入图片大小为[3, 32, 32]
C1: (kernel_size=5, stride=1, padding=0) => [6, 28, 28]
S2: (kernel_size=2, stride=2, padding=0) => [6, 14, 14]
C3: (kernel_size=5, stride=1, padding=0) => [16, 10, 10]
S4: (kernel_size=2, stride=2, padding=0) => [16, 5, 5]
FC1: (num_channel) 打平后总的数据量16×5×5 => 120
FC1: (num_channel)120 => 84
FC1: (num_channel)84 => 10
代码部分
导入包
nn包定义了很多模块,可以把它们当作一个个的神经网络层。
每个模块都有输入输出,并可能有一些可训练权重。
import torch
from torch import nn
构建不同的层
- 构建的层都放在构造函数中
- 可以把几个连续的层作为一个序列,这样在后面调用时直接调用这一序列即可
nn.Sequential()
用到的函数:
nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0)
nn.Conv2d()用法nn.AvgPool2d(kernel_size, stride=None, padding=0)
nn.AvgPool2d()用法nn.Linear(in_features, out_features)
nn.Linear()用法nn.randn