如果在lis中创建pytorch网络,则不会生成权重

2024-09-30 00:41:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在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())现在提供了一个空列表:-(

知道我做错了什么吗

非常感谢


Tags: 方法self网络列表netinitnnpytorch
2条回答

简单地说,这是因为它不是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

基本上,我必须向模块注册层

相关问题 更多 >

    热门问题