Colecții Dinamice de Straturi: nn.ModuleList și nn.ModuleDict în PyTorch & Deep Learning Practic

Sintaxă & invocare Python
self.layers = nn.ModuleList([nn.Linear(10, 10) for _ in range(5)])

Dacă stocăm straturi neuronale într-o listă Python standard (self.layers = [nn.Linear(10, 10)...]), PyTorch nu va înregistra parametrii acestora ca aparținând modelului părinte. În consecință, apelul model.parameters() va ignora complet aceste greutăți, iar optimizatorul nu le va antrena.

Soluția este utilizarea containerelor speciale nn.ModuleList și nn.ModuleDict:

import torch
import torch.nn as nn

class DeepMLP(nn.Module):
    def __init__(self, in_features, hidden_size, num_layers):
        super().__init__()
        # Înregistrare corectă a listei de straturi
        self.layers = nn.ModuleList([
            nn.Linear(in_features if i == 0 else hidden_size, hidden_size)
            for i in range(num_layers)
        ])
        self.activation = nn.GELU()

    def forward(self, x):
        for layer in self.layers:
            x = self.activation(layer(x))
        return x

model = DeepMLP(64, 128, 4)
print("Număr parametri înregistrați:", len(list(model.parameters())))

Toate sub-modulele adăugate în ModuleList sunt migrate corect la apelarea model.to('cuda').

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: Colecții Dinamice de Straturi: nn.ModuleList și nn.ModuleDict

Ai o întrebare despre Colecții Dinamice de Straturi: nn.ModuleList și nn.ModuleDict sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!

🤖

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.

Comunitate AI Adaugă o întrebare sau distribuie un cod / prompt

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.