【发布时间】:2021-09-25 03:24:57
【问题描述】:
我正在研究用 PyTorch 实现的 AlexNet。根据公式,输出高度 = (input_height + padding_top + padding_bottom - kernel_height) / stride_height + 1. 所以使用公式,输入大小为 224,步幅 = 4,填充 = 1,内核大小 =11,输出应该大小为 54.75。但是,如果您运行模型摘要,您会看到第一层的输出为 54。PyTorch 是否会缩减输出大小?如果是这样,它是否会持续减少(看起来像这样)?我想了解幕后发生的事情。
这是我参考的代码:
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(),
nn.Linear(6400, 4096), nn.ReLU(), nn.Dropout(p=0.5),
nn.Linear(4096, 4096), nn.ReLU(), nn.Dropout(p=0.5),
nn.Linear(4096, 10))
【问题讨论】:
标签: python deep-learning pytorch