pytorch-LeNet网络

        LeNet网络的结构

        分享图片

         

         输入的32x32x1的单通道图片,

        第一层网络: 3x3x1x6的卷积层,步长为1, padding = 1, 经过2x2的池化操作

        第二层网络: 5x5x6x16的卷积层, 步长为1, padding = 2, 经过2x2的池化操作

        第三层网络: 经过.view(out.size(0), -1)的尺度变化, 通过400, 120 的第一层全连接, 通过120, 84的第二层全连接, 通过84, 10的第三层全连接。

        LeNet.py 

        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
        相关文章
        相关标签/搜索
        高手论坛免费精选资料