目录
AlexNet架构
AlexNet总结
AlexNet实现
VGG块
VGG架构
VGG总结
AlexNet架构
输入图片为3x224x224维度;第一个卷积层核窗口大小为11x11,卷积层输出为96通道,步长为4;第一个最大池化层窗口大小为3x3,步长为2。
第二个卷积层核窗口大小为5x5,输出通道为256,填充为2。第二个最大池化层窗口大小为3x3,步长为2。
随后连续三个3x3,输出通道为384,填充为1的卷积层。接上一个窗口大小为3x3,步长为2的最大池化层。
随后是两个维度为4096的隐藏层和一个维度为1000的输出层。
同时,AlexNet的激活函数为ReLU,隐藏全连接层后加入的丢弃层,在训练时增强数据以增强模型泛化性。
AlexNet的第一个卷积层参数个数为3(通道数)*96(输出通道数)*11*11(核大小)=35K。
AlexNet总结
AlexNet是一个更大更深的LeNet
新加入了丢弃发、ReLU、最大池化层和数据增强
AlexNet引发了新一轮的神经网络热潮
AlexNet实现
net = nn.Sequential(
nn.Conv2d(1, 96, kernel_size=11, stride=4, padding=1),
nn.ReLU(),
nn.MaxPool2d(kernel_size=3, stride=2),
nn.Conv2d(96, 256, kernel_size=5, padding=2),
nn.ReLU(),
nn.MaxPool2d(kernel_size=3, stride=2),
nn.Conv2d(256, 384, kernel_size=3, padding=1),
nn.ReLU(),
nn.Conv2d(384, 384, kernel_size=3, padding=1),
nn.ReLU(),
nn.Conv2d(384, 256, kernel_size=3, padding=1),
nn.ReLU(),
nn.MaxPool2d(kernel_size=3, stride=2),
nn.Flatten(),
# 展平后大小为256 * 5 * 5,是上一层feature map的结果
nn.Linear(6400, 4096),
nn.Dropout(p=0.5),
nn.Linear(4096, 4096),
nn.Dropout(p=0.5),
nn.Linear(4096, 10)
)
VGG块
AlexNet中存在三个连续的、相同的卷积层。VGG扩展了AlexNet的思路,可以堆叠n层m通道的3x3、填充为1卷积的卷积层,最后连接一个2x2、步幅为2的MaxPool。3x3窗口大小效果好于5x5。
VGG架构
多个VGG块后连接全连接层,不同次数的重复块得到不同架构。
VGG总结
VGG使用可重复使用的卷积快来构建深度卷积神经网络。
不同卷积块个数和超参数可以得到不同复杂度的变种。