Ketika menulis makalah / membuat presentasi tentang topik yang membahas tentang jaringan saraf, orang biasanya memvisualisasikan arsitektur jaringan.
Apa cara yang baik / sederhana untuk memvisualisasikan arsitektur umum secara otomatis?
machine-learning
neural-network
deep-learning
visualization
Martin Thoma
sumber
sumber
Jawaban:
Tensorflow, Keras, MXNet, PyTorch
Jika jaringan saraf diberikan sebagai grafik Tensorflow, maka Anda dapat memvisualisasikan grafik ini dengan TensorBoard .
Beginilah MNN CNN terlihat seperti:
Anda dapat menambahkan nama / cakupan (seperti "dropout", "softmax", "fc1", "conv1", "conv2") sendiri.
Interpretasi
Berikut ini hanya tentang grafik kiri. Saya mengabaikan 4 grafik kecil di sebelah kanan.
Setiap kotak adalah lapisan dengan parameter yang bisa dipelajari. Untuk kesimpulan, informasi mengalir dari bawah ke atas. Elips adalah lapisan yang tidak mengandung parameter yang dipelajari.
Warna kotak tidak memiliki arti.
Saya tidak yakin dengan nilai kotak kecil putus-putus ("gradien", "Adam", "save").
sumber
Baru-baru ini saya membuat alat untuk menggambar arsitektur NN dan mengekspor SVG, yang disebut NN-SVG
sumber
Di Caffe, Anda bisa menggunakan caffe / draw.py untuk menggambar protobuffer NetParameter:
Di Matlab, Anda dapat menggunakan tampilan (bersih)
Keras.js :
sumber
Saya akan menambahkan visualisasi ASCII menggunakan keras-sequential-ascii (disclaimer: I am the author).
Jaringan kecil untuk CIFAR-10 (dari tutorial ini ) adalah:
Untuk VGG16 akan menjadi:
sumber
Ada proyek sumber terbuka yang disebut Netron
sumber
Inilah cara lain - dotnets , menggunakan Graphviz , sangat terinspirasi oleh posting ini oleh Thiago G. Martins.
sumber
Keras
The keras.utils.vis_utils modul menyediakan fungsi utilitas untuk merencanakan model Keras (menggunakan graphviz)
Berikut ini menunjukkan model jaringan bahwa lapisan tersembunyi pertama memiliki 50 neuron dan mengharapkan 104 variabel input.
sumber
Paket Python
conx
dapat memvisualisasikan jaringan dengan aktivasi dengan fungsinet.picture()
untuk menghasilkan Gambar SVG, PNG, atau PIL seperti ini:Conx dibangun di atas Keras, dan dapat membaca dalam model Keras. Colormap di setiap bank dapat diubah, dan itu dapat menunjukkan semua jenis bank.
Informasi lebih lanjut dapat ditemukan di: http://conx.readthedocs.io/en/latest/
sumber
Saya telah bekerja pada visualisator jaringan saraf drag-and-drop (dan banyak lagi). Berikut adalah contoh visualisasi untuk arsitektur seperti LeNet. Model dengan fan-out dan fan-in juga cukup mudah dimodelkan. Anda dapat mengunjungi situs web di https://math.mit.edu/ennui/
sumber
Dalam R,
nnet
tidak datang dengan fungsi plot, tetapi kode untuk itu disediakan di sini .Atau, Anda dapat menggunakan paket yang lebih baru dan IMHO lebih baik yang disebut
neuralnet
yang memilikiplot.neuralnet
fungsi, jadi Anda bisa melakukan:neuralnet
tidak digunakan sebanyaknnet
karenannet
jauh lebih tua dan dikirimkan bersama r-cran. Tapineuralnet
memiliki lebih banyak algoritma pelatihan, termasuk backpropagation tangguh yang kurang bahkan dalam paket seperti Tensorflow, dan jauh lebih kuat untuk pilihan hyperparameter, dan memiliki lebih banyak fitur secara keseluruhan.sumber
Ada beberapa upaya alternatif baru pada visualisasi jaringan saraf.
Silakan lihat artikel ini:
'Pemindaian otak AI' yang menakjubkan mengungkapkan apa yang dilihat mesin saat mereka mempelajari keterampilan baru
Di dalam 'otak' AI - seperti apa pembelajaran mesin?
Pendekatan ini lebih berorientasi pada memvisualisasikan operasi jaringan saraf, namun, arsitektur NN juga agak terlihat pada diagram yang dihasilkan.
Contoh:
sumber
Tidak hanya untuk kertas, tetapi sangat berguna untuk menunjukkan kepada orang-orang yang tidak tahu banyak tentang jaringan saraf seperti apa topologi mereka. Pustaka Javascript ini (Neataptic) memungkinkan Anda memvisualisasikan jaringan Anda:
sumber
Anda dapat membaca makalah populer Understanding Neural Networks Through Deep Visualization yang membahas visualisasi jaring konvolusional. Implementasinya tidak hanya menampilkan setiap lapisan tetapi juga menggambarkan aktivasi, bobot, dekonvolusi, dan banyak hal lain yang dibahas secara mendalam di koran. Kode itu ada di
caffe'
. Bagian yang menarik adalah Anda dapat mengganti model yang sudah dilatih sebelumnya dengan model Anda sendiri.sumber
Tensorspace-JS adalah alat yang fantastis untuk visualisasi 3d arsitektur jaringan:
https://tensorspace.org/
dan di sini ada posting yang bagus tentang cara menulis program:
https://medium.freecodecamp.org/tensorspace-js-a-way-to-3d-visualize-neural-networks-in-browsers-2c0afd7648a8
sumber
Netscope adalah alat sehari-hari saya untuk model Caffe.
sumber