Есть ли способ распечатать сводку модели в PyTorch, как model.summary()
метод в Keras, как показано ниже?
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
это лучшее решение.Ответы:
Хотя вы не получите такой подробной информации о модели, как в «model.summary» Кераса, простая печать модели даст вам некоторое представление о различных задействованных слоях и их спецификациях.
Например:
Результат в этом случае будет примерно таким:
Теперь вы можете, как упомянул Кашьяп , использовать этот
state_dict
метод для получения весов различных слоев. Но использование этого списка слоев, возможно, дало бы больше направления - создание вспомогательной функции для получения сводки модели, подобной Keras! Надеюсь это поможет!источник
Да, вы можете получить точное представление Keras , используя пакет pytorch-summary .
Пример для VGG16
источник
Expected object of backend CPU but got backend CUDA for argument #4 'mat1'
и, похоже, документации нет.summary(model.cuda(), (INPUT_SHAPE))
работает.Чтобы использовать фонари, наберите сводку:
Если у вас его нет, сначала установите его.
И тогда вы можете попробовать, но обратите внимание, что по какой-то причине он не работает, если я не установил модель на cuda
alexnet.cuda
:summary
Должен принимать входной размер и размер партии устанавливается в -1 означает любой размер пакета мы обеспечиваем.Если мы установим
summary(alexnet, (3, 224, 224), 32)
это значение, используйте расширениеbs=32
.Вне:
источник
Это покажет веса и параметры модели (но не форму вывода).
Изменить: у isaykatsman есть PR pytorch для добавления,
model.summary()
который точно такой же, как keras https://github.com/pytorch/pytorch/pull/3043/filesисточник
Самый простой для запоминания (не такой красивый, как Керас):
Это также работает:
Если вам просто нужно количество параметров:
От: Есть ли функция pytorch, аналогичная model.summary () как keras? (forum.PyTorch.org)
источник
Ты можешь использовать
Вы можете указать устройство
Вы можете создать сеть, и если вы используете наборы данных MNIST, следующие команды будут работать и покажут вам сводку
источник
AFAK нет эквивалента model.summary () в pytorch
Тем временем вы можете сослаться на скрипт szagoruyko, который дает хорошую визуализацию, как в примере resnet18.
ура
источник
Просто распечатайте модель после определения объекта для класса модели.
источник
Вы можете просто использовать
x.shape
, чтобы измерить тензорныеx
размерыисточник
Для визуализации и сводки
PyTorch
моделей также можно использовать tensorboardX .источник
Keras любит сводку модели с использованием torchsummary:
источник