Existe alguma maneira, eu posso imprimir o resumo de um modelo em PyTorch como o model.summary()
método faz em Keras como segue?
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
é a melhor solução.Respostas:
Embora você não obtenha informações tão detalhadas sobre o modelo como no resumo do modelo de Keras, a simples impressão do modelo lhe dará uma ideia sobre as diferentes camadas envolvidas e suas especificações.
Por exemplo:
A saída, neste caso, seria algo como a seguir:
Agora você poderia, como mencionado por Kashyap , usar o
state_dict
método para obter os pesos das diferentes camadas. Mas usar essa lista de camadas talvez forneça mais direção, é criar uma função auxiliar para obter o resumo do modelo de Keras! Espero que isto ajude!fonte
Sim, você pode obter a representação exata de Keras, usando o pacote pytorch-summary .
Exemplo para VGG16
fonte
Expected object of backend CPU but got backend CUDA for argument #4 'mat1'
e parece que não há documentação.summary(model.cuda(), (INPUT_SHAPE))
trabalho.Para usar o tipo de resumo da tocha:
Instale-o primeiro, se não o tiver.
E então você pode tentar, mas observe por algum motivo que não está funcionando a menos que eu defina o modelo como cuda
alexnet.cuda
:O
summary
deve ter o tamanho de entrada e o tamanho do lote é definido como -1, o que significa qualquer tamanho de lote que fornecemos.Se definirmos
summary(alexnet, (3, 224, 224), 32)
isso significa usar obs=32
.Fora:
fonte
Isso mostrará os pesos e parâmetros de um modelo (mas não a forma de saída).
Editar: isaykatsman tem um PR pytorch para adicionar um
model.summary()
que é exatamente como keras https://github.com/pytorch/pytorch/pull/3043/filesfonte
Mais simples de lembrar (não tão bonita quanto Keras):
Isso também funciona:
Se você quiser apenas o número de parâmetros:
De: Existe uma função pytorch semelhante a model.summary () as keras? (forum.PyTorch.org)
fonte
Você pode usar
Você pode especificar o dispositivo
Você pode criar uma rede e, se estiver usando conjuntos de dados MNIST, os seguintes comandos funcionarão e mostrarão um resumo
fonte
AFAK não há model.summary () como equivalente em pytorch
Enquanto isso, você pode consultar o script de szagoruyko, que oferece uma boa visualização como em resnet18-example
Felicidades
fonte
Basta imprimir o modelo após definir um objeto para a classe do modelo
fonte
Você pode apenas usar
x.shape
, a fim de medir asx
dimensões do tensorfonte
Para visualização e resumo dos
PyTorch
modelos, tensorboardX também pode ser utilizado.fonte