簡體   English   中英

我可以在 `nn.Sequential` 中解壓 `nn.ModuleList` 嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM