python - 我可以在 nn.Sequential 中解压一个 nn.ModuleList 吗?
问题描述
我正在使用 参数化简单 ANN 的隐藏层数nn.ModuleList
。我想知道是否将此列表nn.Sequential
按如下方式传递到模块中会导致执行图产生任何不利影响。
nn.Sequential
不是必需的,但是对我来说,在构造函数中明确显示整个架构似乎更干净。
class ANN(nn.Module):
def __init__(
self,
in_feats=3,
in_hidden=5,
n_hidden_layers=3,
):
super(ANN, self).__init__()
# ====== dynamically register hidden layers ======
self.hidden_linears = nn.ModuleList()
for i in range(n_hidden_layers):
self.hidden_linears.append(nn.Linear(in_hidden, in_hidden))
self.hidden_linears.append(nn.ReLU())
# ====== sequence of layers ======
self.layers = nn.Sequential(
nn.Linear(in_feats, in_hidden),
nn.ReLU(),
*self.hidden_linears,
nn.Linear(in_hidden, 1),
nn.Sigmoid(),
)
def forward(self, X):
return self.layers(X)
也愿意接受有关将其组合在一起的更简洁方法的建议。
解决方案
推荐阅读
- netlogo - Netlogo:变量有时列出有时编号,导致错误
- spring-boot - 如何正确设置敏感凭据的配置文件?
- c# - 如何正确解决警告 CS1998:此异步方法缺少“等待”(不压制它)?
- java - 如何使用 JPA-Entities 作为 maven 的依赖项
- html - 带有空格的 html textarea 中的缩进不能按预期工作
- typescript - VSCode 中的打字稿推理不起作用?
- android - 应用在后台时安装灵活的应用内更新
- android - 当cardview在recyclerview中被swpied时如何从firebase中删除对象>
- django - 无法在 django 部署应用程序中重新启动 nginx
- excel - 如果数据在 dd:hh:mm:ss 中,有没有办法获得平均时间?