LeNet網絡的結構網絡
輸入的32x32x1的單通道圖片,spa
第一層網絡: 3x3x1x6的卷積層,步長爲1, padding = 1, 通過2x2的池化操做code
第二層網絡: 5x5x6x16的卷積層, 步長爲1, padding = 2, 通過2x2的池化操做blog
第三層網絡: 通過.view(out.size(0), -1)的尺度變化, 經過400, 120 的第一層全鏈接, 經過120, 84的第二層全鏈接, 經過84, 10的第三層全鏈接。圖片
LeNet.py it
import torch from torch import nn class Lenet(nn.Module): def __init__(self): super(Lenet, self).__init__() layer1 = nn.Sequential() layer1.add_module('conv1', nn.Conv2d(1, 6, 3, padding=1)) layer1.add_module('pool1', nn.MaxPool2d(2, 2)) self.layer1 = layer1 layer2 = nn.Sequential() layer2.add_module('conv2', nn.Conv2d(6, 16, 5)) layer2.add_module('pool2', nn.MaxPool2d(2, 2)) self.layer2 = layer2 layer3 = nn.Sequential() layer3.add_module('fc1', nn.Linear(400, 120)) layer3.add_module('fc2', nn.Linear(120, 84)) layer3.add_module('fc3', nn.Linear(84, 10)) self.layer3 = layer3 def forward(self, x): x = self.layer1(x) x = self.layer2(x) x = x.view(x.size(0), -1) x = self.layer3(x) return x