Gibt es eine Möglichkeit, die Zusammenfassung eines Modells in PyTorch wie model.summary()
in Keras wie folgt auszudrucken ?
Model Summary:
____________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
====================================================================================================
input_1 (InputLayer) (None, 1, 15, 27) 0
____________________________________________________________________________________________________
convolution2d_1 (Convolution2D) (None, 8, 15, 27) 872 input_1[0][0]
____________________________________________________________________________________________________
maxpooling2d_1 (MaxPooling2D) (None, 8, 7, 27) 0 convolution2d_1[0][0]
____________________________________________________________________________________________________
flatten_1 (Flatten) (None, 1512) 0 maxpooling2d_1[0][0]
____________________________________________________________________________________________________
dense_1 (Dense) (None, 1) 1513 flatten_1[0][0]
====================================================================================================
Total params: 2,385
Trainable params: 2,385
Non-trainable params: 0
torchsummary
ist die bessere Lösung.Antworten:
Während Sie nicht so detaillierte Informationen über das Modell erhalten wie in Keras 'model.summary, erhalten Sie durch einfaches Drucken des Modells eine Vorstellung von den verschiedenen beteiligten Ebenen und ihren Spezifikationen.
Zum Beispiel:
Die Ausgabe in diesem Fall wäre wie folgt:
Jetzt können Sie, wie von Kashyap erwähnt , die
state_dict
Methode verwenden, um die Gewichte der verschiedenen Schichten zu ermitteln. Aber die Verwendung dieser Auflistung der Ebenen würde vielleicht mehr Richtung bieten, indem eine Hilfsfunktion erstellt wird, um diese Keras-ähnliche Modellzusammenfassung zu erhalten! Hoffe das hilft!quelle
Ja, Sie können mithilfe des Pytorch-Zusammenfassungspakets eine genaue Keras-Darstellung erhalten .
Beispiel für VGG16
quelle
Expected object of backend CPU but got backend CUDA for argument #4 'mat1'
und es scheint, dass es keine Dokumentation gibt.summary(model.cuda(), (INPUT_SHAPE))
funktioniert.Um Torchsummary zu verwenden, geben Sie Folgendes ein:
Installieren Sie es zuerst, wenn Sie es nicht haben.
Und dann können Sie es versuchen, aber beachten Sie aus irgendeinem Grund, dass es nicht funktioniert, es sei denn, ich setze Modell auf cuda
alexnet.cuda
:Das
summary
Muss muss die Eingabegröße annehmen und die Stapelgröße wird auf -1 gesetzt, was jede von uns bereitgestellte Stapelgröße bedeutet.Wenn wir dies einstellen
summary(alexnet, (3, 224, 224), 32)
, verwenden Sie diebs=32
.Aus:
quelle
Dies zeigt die Gewichte und Parameter eines Modells (aber nicht die Ausgabeform).
Bearbeiten: isaykatsman hat eine Pytorch-PR, um eine hinzuzufügen
model.summary()
, die genau wie Keras https://github.com/pytorch/pytorch/pull/3043/files istquelle
Am einfachsten zu merken (nicht so hübsch wie Keras):
Das funktioniert auch:
Wenn Sie nur die Anzahl der Parameter möchten:
Von: Gibt es eine ähnliche Pytorch-Funktion wie model.summary () wie Keras? (forum.PyTorch.org)
quelle
Sie können verwenden
Sie können das Gerät angeben
Sie können ein Netzwerk erstellen. Wenn Sie MNIST-Datasets verwenden, funktionieren die folgenden Befehle und zeigen Ihnen eine Zusammenfassung
quelle
AFAK gibt es kein model.summary () wie Äquivalent in pytorch
In der Zwischenzeit können Sie auf ein Skript von szagoruyko verweisen , das eine schöne Visualisierung wie im Beispiel resnet18 bietet
Prost
quelle
Drucken Sie das Modell einfach aus, nachdem Sie ein Objekt für die Modellklasse definiert haben
quelle
Sie können nur verwenden
x.shape
, um diex
Abmessungen des Tensors zu messenquelle
Zur Visualisierung und Zusammenfassung von
PyTorch
Modellen kann auch TensorboardX verwendet werden.quelle