【发布时间】:2020-08-26 02:48:12
【问题描述】:
我已经研究了关于这个主题的问题,我只看到了使用 ModuleList 而不是通常的列表的建议。但是我不明白为什么在我使用nn.Sequential的情况下会出现这个错误? 我尝试在这里的官方实现中构建 AlexNet:https://github.com/pytorch/vision/blob/master/torchvision/models/alexnet.py 但得到“ValueError:优化器得到一个空参数列表”
class AlexNet(nn.Module):
def __init__(self, input_channels, n_classes=1000):
super(AlexNet, self).__init__()
self.features = nn.Sequential
(
nn.Conv2d(input_channels, 96, kernel_size=11, stride=4),
nn.LocalResponseNorm(size=2, alpha=2e-5),
nn.MaxPool2d(kernel_size=3, stride=2),
nn.ReLU(inplace=True),
nn.Conv2d(96, 256, kernel_size=5, stride=1),
nn.LocalResponseNorm(size=2, alpha=2e-5),
nn.MaxPool2d(kernel_size=3, stride=2),
nn.ReLU(inplace=True),
nn.Conv2d(256, 384, kernel_size=3, stride=1),
nn.ReLU(inplace=True),
nn.Conv2d(384, 384, kernel_size=3, stride=1),
nn.ReLU(inplace=True),
nn.Conv2d(384, 256, kernel_size=3, stride=1),
nn.ReLU(inplace=True),
)
self.fully_connected = nn.Sequential
(
nn.Dropout2d(0.5),
nn.Linear(256, 4096),
nn.ReLU(inplace=True),
nn.Linear(4096, 4096),
nn.ReLU(inplace=True),
nn.Linear(4096, n_classes)
)
def forward(self, x):
x = self.features(x)
x = nn.Flatten(x)
x = self.fully_connected(x)
return x
model = AlexNet(input_channels=1, n_classes=10)
optimizer = optim.Adam(model.parameters() , lr=1e-3)
【问题讨论】: