我正在pytorch中创建一个网络,方法是使用init()和forward()方法编写一个名为MyNet的类。 如果我在init()中创建一个层,如:
self.fc = nn.Linear(5, 10)
一切都很顺利
net = MyNet()
paramL = list(net.parameters())
给我一个列表,里面有一些权重。 但是,如果我以以下方式创建层
self.layerL = [nn.Linear(5,10)]
似乎出现了一些问题,因为list(net.parameters())现在提供了一个空列表:-(
知道我做错了什么吗
非常感谢
简单地说,这是因为它不是
torch.nn
对象。 对于此用途torch.nn.Sequential
。比如说,self.Layer = torch.nn.Sequential(nn.Linear(5,10), nn.Linear(10,10), ...)
好了,找到了解决办法 https://discuss.pytorch.org/t/how-to-create-mlp-model-with-arbitrary-number-of-hidden-layers/13124
基本上,我必须向模块注册层
相关问题 更多 >
编程相关推荐