Apakah ada cara, saya dapat mencetak ringkasan model di PyTorch seperti model.summary()
metode yang dilakukan di Keras sebagai berikut?
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
adalah solusi yang lebih baik.Jawaban:
Meskipun Anda tidak akan mendapatkan informasi mendetail tentang model seperti pada model Keras. Ringkasan, cukup mencetak model akan memberi Anda gambaran tentang berbagai lapisan yang terlibat dan spesifikasinya.
Misalnya:
Output dalam kasus ini adalah sebagai berikut:
Sekarang Anda bisa, seperti yang disebutkan oleh Kashyap , menggunakan
state_dict
metode untuk mendapatkan bobot dari berbagai lapisan. Tetapi menggunakan daftar lapisan ini mungkin akan memberikan lebih banyak arahan adalah membuat fungsi pembantu untuk mendapatkan ringkasan model seperti Keras! Semoga ini membantu!sumber
Ya, Anda bisa mendapatkan representasi Keras yang tepat, menggunakan paket ringkasan pytorch .
Contoh untuk VGG16
sumber
Expected object of backend CPU but got backend CUDA for argument #4 'mat1'
dan sepertinya tidak ada dokumentasi.summary(model.cuda(), (INPUT_SHAPE))
bekerja.Untuk menggunakan tipe torchsummary:
Instal dulu jika Anda tidak memilikinya.
Dan kemudian Anda dapat mencobanya, tetapi perhatikan dari beberapa alasan itu tidak berfungsi kecuali saya mengatur model ke cuda
alexnet.cuda
:The
summary
harus mengambil ukuran input dan ukuran batch yang diatur dengan -1 berarti ukuran batch yang kami sediakan.Jika kita mengatur
summary(alexnet, (3, 224, 224), 32)
ini berarti menggunakanbs=32
.Di luar:
sumber
Ini akan menunjukkan bobot dan parameter model (tetapi bukan bentuk keluaran).
Sunting: isaykatsman memiliki PR pytorch untuk menambahkan
model.summary()
yang persis seperti keras https://github.com/pytorch/pytorch/pull/3043/filessumber
Paling sederhana untuk diingat (tidak secantik Keras):
Ini juga berfungsi:
Jika Anda hanya menginginkan jumlah parameter:
Dari: Apakah ada fungsi pytorch yang mirip dengan model.summary () sebagai keras? (forum.PyTorch.org)
sumber
Kamu bisa memakai
Anda dapat menentukan perangkat
Anda dapat membuat Jaringan, dan jika Anda menggunakan kumpulan data MNIST, maka perintah berikut akan berfungsi dan menampilkan ringkasan
sumber
AFAK tidak ada model.summary () seperti padanan di pytorch
Sementara itu Anda dapat merujuk script oleh szagoruyko, yang memberikan visualisasi yang bagus seperti di resnet18-contoh
Bersulang
sumber
Cukup cetak model setelah menentukan objek untuk kelas model
sumber
Anda bisa menggunakan
x.shape
, untuk mengukurx
dimensi tensorsumber
Untuk visualisasi dan ringkasan
PyTorch
model, tensorboardX juga dapat digunakan.sumber