PyTorch, nn.Sequenzielle(), Zugang GEWICHTE mit einem speziellen Modul in nn.Sequenzielle()
sollte dies auf die schnelle. Wenn ich mit einem vordefinierten Modul in PyTorch, ich kann in der Regel Zugriff auf seine GEWICHTE relativ leicht. Aber wie greife ich auf Sie zu, wenn ich wickelte Sie das Modul in den nn.Sequenzielle() zuerst? Finden Sie Spielzeug-Beispiel unten
class My_Model_1(nn.Module):
def __init__(self,D_in,D_out):
super(My_Model_1, self).__init__()
self.layer = nn.Linear(D_in,D_out)
def forward(self,x):
out = self.layer(x)
return out
class My_Model_2(nn.Module):
def __init__(self,D_in,D_out):
super(My_Model_2, self).__init__()
self.layer = nn.Sequential(nn.Linear(D_in,D_out))
def forward(self,x):
out = self.layer(x)
return out
model_1 = My_Model_1(10,10)
print(model_1.layer.weight)
model_2 = My_Model_2(10,10)
# How do I print the weights now?
# model_2.layer.0.weight doesn't work.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einem leichten Gewicht, um den Zugriff auf die GEWICHTE ist die Verwendung der
state_dict()
des Modells.Sollte dies in Ihrem Fall:
Weitere option ist, um die
modules()
iterator. Wenn Sie im Voraus wissen, die Art der Ihren Schichten, dies sollte auch funktionieren:Aus der PyTorch forum, das ist der empfohlene Weg:
Können Sie access Module nach Namen mit
_modules
: