¿Hay alguna forma de que pueda imprimir el resumen de un modelo en PyTorch como lo model.summary()
hace el método en Keras de la siguiente manera?
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
es la mejor solución.Respuestas:
Si bien no obtendrá información tan detallada sobre el modelo como en el resumen del modelo de Keras, simplemente imprimir el modelo le dará una idea de las diferentes capas involucradas y sus especificaciones.
Por ejemplo:
La salida en este caso sería la siguiente:
Ahora podría, como lo menciona Kashyap , usar el
state_dict
método para obtener los pesos de las diferentes capas. Pero el uso de esta lista de capas tal vez proporcionaría más dirección al crear una función auxiliar para obtener ese resumen del modelo similar a Keras. ¡Espero que esto ayude!fuente
Sí, puede obtener una representación exacta de Keras utilizando el paquete pytorch-summary .
Ejemplo para VGG16
fuente
Expected object of backend CPU but got backend CUDA for argument #4 'mat1'
y parece que no hay documentación.summary(model.cuda(), (INPUT_SHAPE))
trabajos.Para utilizar el tipo de resumen:
Instálelo primero si no lo tiene.
Y luego puede probarlo, pero tenga en cuenta que por alguna razón no funciona a menos que establezca el modelo en cuda
alexnet.cuda
:El
summary
debe tener el tamaño de entrada y el tamaño del lote se establece en -1 significa cualquier tamaño de lote que proporcionamos.Si configuramos
summary(alexnet, (3, 224, 224), 32)
esto significa que use elbs=32
.Fuera:
fuente
Esto mostrará los pesos y los parámetros de un modelo (pero no la forma de salida).
Editar: isaykatsman tiene un Pytorch PR para agregar un
model.summary()
que es exactamente como keras https://github.com/pytorch/pytorch/pull/3043/filesfuente
Más simple de recordar (no tan bonito como Keras):
Esto también funciona:
Si solo desea la cantidad de parámetros:
De: ¿Existe una función de pytorch similar a model.summary () como keras? (forum.PyTorch.org)
fuente
Puedes usar
Puede especificar el dispositivo
Puede crear una red, y si está utilizando conjuntos de datos MNIST, los siguientes comandos funcionarán y le mostrarán un resumen
fuente
AFAK no hay model.summary () como equivalente en pytorch
Mientras tanto, puede consultar el script de szagoruyko, que ofrece una buena visualización como en resnet18-example
Salud
fuente
Simplemente imprima el modelo después de definir un objeto para la clase de modelo
fuente
Puede usar
x.shape
, para medir lasx
dimensiones del tensorfuente
Para visualización y resumen de
PyTorch
modelos, también se puede utilizar tensorboardX .fuente