首页 > 解决方案 > 如果在列表中完成,pytorch 网络创建不会生成权重

问题描述

我正在通过使用init () 和 forward() 方法编写一个名为 MyNet 的类在 pytorch 中创建一个网络。如果我在init ()中创建一个层,例如:

self.fc = nn.Linear(5, 10)

一切正常

net = MyNet()
paramL = list(net.parameters())

给了我一个清单,里面有一些重量。但是,如果我按以下方式创建图层

self.layerL = [nn.Linear(5,10)]

似乎出了点问题,因为 list(net.parameters()) 现在给出了一个空列表:-(

知道我做错了什么吗?

非常感谢

标签: pythondeep-learningpytorch

解决方案


简单来说,这是因为它不是一个torch.nn对象。对于这个用途torch.nn.Sequential。例如,

self.Layer = torch.nn.Sequential(nn.Linear(5,10), nn.Linear(10,10), ...)


推荐阅读