Czy jest jakiś sposób, żebym mógł wydrukować podsumowanie modelu w PyTorch, podobnie jak model.summary()
metoda w Kerasie w następujący sposób?
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
jest lepszym rozwiązaniem.Odpowiedzi:
Chociaż nie uzyskasz tak szczegółowych informacji o modelu, jak w modelu Keras 'model.s summary, po prostu wydrukowanie modelu da ci wyobrażenie o różnych warstwach i ich specyfikacjach.
Na przykład:
Wynik w tym przypadku wyglądałby następująco:
Teraz możesz, jak wspomniał Kashyap , użyć tej
state_dict
metody, aby uzyskać wagi różnych warstw. Ale użycie tej listy warstw może zapewnić więcej wskazówek, tworząc funkcję pomocniczą, która sprawi, że Keras przypomina podsumowanie modelu! Mam nadzieję że to pomoże!źródło
Tak, możesz uzyskać dokładną reprezentację Keras, używając pakietu pytorch-summary .
Przykład dla VGG16
źródło
Expected object of backend CPU but got backend CUDA for argument #4 'mat1'
i wygląda na to, że nie ma dokumentacji.summary(model.cuda(), (INPUT_SHAPE))
Pracuje.Aby użyć typu podsumowania pochodni:
Zainstaluj go najpierw, jeśli go nie masz.
A potem możesz spróbować, ale uwaga z jakiegoś powodu nie działa, chyba że ustawię model na cuda
alexnet.cuda
:summary
Musi mieć rozmiar wejściowy i wielkość partii jest ustawiony na -1 oznacza każdą wielkość wsadu zapewniamy.Jeśli ustawimy,
summary(alexnet, (3, 224, 224), 32)
oznacza to, że użyjbs=32
.Na zewnątrz:
źródło
Spowoduje to wyświetlenie wagi i parametrów modelu (ale nie kształtu wyjściowego).
Edycja: isaykatsman ma plik PR dotyczący pytorcha, aby dodać plik,
model.summary()
który jest dokładnie taki sam, jak keras https://github.com/pytorch/pytorch/pull/3043/filesźródło
Najłatwiejsze do zapamiętania (nie tak ładne jak Keras):
Działa to również:
Jeśli chcesz tylko liczbę parametrów:
Od: Czy istnieje podobna funkcja pytorcha jak model.summary () jak keras? (forum.PyTorch.org)
źródło
Możesz użyć
Możesz określić urządzenie
Możesz utworzyć sieć, a jeśli używasz zestawów danych MNIST, poniższe polecenia będą działać i pokażą podsumowanie
źródło
AFAK nie ma odpowiednika model.summary () w pytorchu
W międzyczasie możesz polecić skrypt szagoruyko, co daje ładną wizualizację jak w resnet18-przykład
Twoje zdrowie
źródło
Po prostu wydrukuj model po zdefiniowaniu obiektu dla klasy modelu
źródło
Możesz po prostu użyć
x.shape
, aby zmierzyćx
wymiary tensoraźródło
Do wizualizacji i podsumowania
PyTorch
modeli można również wykorzystać tensorboardX .źródło
Keras lubi podsumowanie modelu przy użyciu podsumowania pochodni:
źródło