how to

样本 * 通道 * h * w

Aug 5, 2024
notesjulyfun技术学习d2l
2 Minutes
294 Words

阅读网络结构的函数参数

1
# 样本 * 通道 * h * w
2
# 输入为 X = torch.randn(1, 1, 224, 224)
3
4
net = nn.Sequential(
5
# [解释] 输入通道 1,输出通道 96,输出大小 54 * 54,注意这里 kernel 没有刚好填到最右端,下取整为 54. 卷积核有 96 个(每个输入-输出通道组合拥有一个卷及核)
6
nn.Conv2d(1, 96, kernel_size=11, stride=4, padding=1),
7
nn.ReLU(),
8
nn.MaxPool2d(kernel_size=3, stride=2),
9
# 减小卷积窗口,使用填充为2来使得输入与输出的高和宽一致,且增大输出通道数
10
nn.Conv2d(96, 256, kernel_size=5, padding=2), nn.ReLU(),
11
nn.MaxPool2d(kernel_size=3, stride=2),
12
# 使用三个连续的卷积层和较小的卷积窗口。
13
# 除了最后的卷积层,输出通道的数量进一步增加。
14
# 在前两个卷积层之后,汇聚层不用于减少输入的高度和宽度
15
nn.Conv2d(256, 384, kernel_size=3, padding=1), nn.ReLU(),
11 collapsed lines
16
nn.Conv2d(384, 384, kernel_size=3, padding=1), nn.ReLU(),
17
nn.Conv2d(384, 256, kernel_size=3, padding=1), nn.ReLU(),
18
nn.MaxPool2d(kernel_size=3, stride=2),
19
nn.Flatten(),
20
# 这里,全连接层的输出数量是LeNet中的好几倍。使用dropout层来减轻过拟合
21
nn.Linear(6400, 4096), nn.ReLU(),
22
nn.Dropout(p=0.5),
23
nn.Linear(4096, 4096), nn.ReLU(),
24
nn.Dropout(p=0.5),
25
# 最后是输出层。由于这里使用Fashion-MNIST,所以用类别数为10,而非论文中的1000
26
nn.Linear(4096, 10))
Article title:样本 * 通道 * h * w
Article author:Julyfun
Release time:Aug 5, 2024
Copyright 2025
Sitemap