[英]Can I unpack an `nn.ModuleList` inside `nn.Sequential`?
我正在使用nn.ModuleList
對簡單 ANN 的隱藏層數進行參數化。 我想知道如下將此列表傳遞到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)
也願意接受更簡潔的方法將它們組合在一起的建議。
您可以使用nn.Sequential.modules()
獲取 Sequential 的每個部分,然后將它們打包到一個列表中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.