При написании статьи / создании презентации по теме, касающейся нейронных сетей, обычно визуализируют архитектуру сетей.
Каковы хорошие / простые способы автоматической визуализации общих архитектур?
machine-learning
neural-network
deep-learning
visualization
Мартин Тома
источник
источник
Ответы:
Tensorflow, Keras, MXNet, PyTorch
Если нейронная сеть представлена в виде графика Tensorflow, вы можете визуализировать этот график с помощью TensorBoard .
Вот как выглядит MNIST CNN:
Вы можете добавить имена / области (например, «dropout», «softmax», «fc1», «conv1», «conv2») самостоятельно.
интерпретация
Следующее только о левом графике. Я игнорирую 4 маленьких графика в правой половине.
Каждый блок представляет собой слой с параметрами, которые могут быть изучены. Для вывода информация течет снизу вверх. Эллипсы - это слои, которые не содержат изученных параметров.
Цвет коробок не имеет смысла.
Я не уверен в значении пунктирных маленьких квадратиков («градиенты», «Адам», «сохранить»).
источник
Недавно я создал инструмент для рисования NN-архитектур и экспорта SVG, который называется NN-SVG.
источник
В Caffe вы можете использовать caffe / draw.py для рисования протобуфера NetParameter:
В Matlab вы можете использовать вид (нетто)
Keras.js :
источник
Я бы добавил визуализацию ASCII, используя keras-sequential-ascii (заявление об отказе: я автор).
Небольшая сеть для CIFAR-10 (из этого руководства ) будет:
Для VGG16 это будет:
источник
Существует проект с открытым исходным кодом под названием Netron
источник
Вот еще один способ - дотнет , используя Graphviz , вдохновленный этим постом Тьяго Г. Мартинса.
источник
Keras
Модуль keras.utils.vis_utils предоставляет служебные функции для построения модели Keras (используя graphviz).
Ниже показана модель сети, в которой первый скрытый слой имеет 50 нейронов и ожидает 104 входных переменных.
источник
Пакет Python
conx
может визуализировать сети с активациями с помощью функцииnet.picture()
для создания изображений SVG, PNG или PIL, например:Conx построен на Keras, и может читать в моделях Keras. Цветовая карта в каждом банке может быть изменена, и она может отображать все типы банков.
Дополнительную информацию можно найти по адресу: http://conx.readthedocs.io/en/latest/
источник
Я работал над визуализатором нейронной сети с помощью перетаскивания (и не только). Вот пример визуализации для LeNet-подобной архитектуры. Модели с разветвлением и разветвлением также довольно легко моделируются. Вы можете посетить веб-сайт по адресу https://math.mit.edu/ennui/
источник
В R
nnet
не поставляется с функцией plot, но код для этого приведен здесь .В качестве альтернативы вы можете использовать более свежий и IMHO лучший пакет,
neuralnet
который называетсяplot.neuralnet
функцией, поэтому вы можете просто сделать:neuralnet
не используется столько, сколькоnnet
потому, чтоnnet
он намного старше и поставляется с R-Cran. Ноneuralnet
имеет больше алгоритмов обучения, включая упругое обратное распространение, которое отсутствует даже в таких пакетах, как Tensorflow, и намного более устойчиво к выбору гиперпараметров, и имеет больше возможностей в целом.источник
Есть несколько новых альтернативных способов визуализации нейронных сетей.
Пожалуйста, смотрите эти статьи:
Потрясающие «сканирования мозга ИИ» показывают, что машины видят, когда они изучают новые навыки
Внутри «мозга» ИИ - как выглядит машинное обучение?
Эти подходы больше ориентированы на визуализацию работы нейронной сети, однако архитектура NN также несколько видна на полученных диаграммах.
Примеры:
источник
Не очень хорошо для бумаг, но очень полезно для того, чтобы показать людям, которые мало знают о нейронных сетях, как может выглядеть их топология. Эта библиотека Javascript (Neataptic) позволяет визуализировать вашу сеть:
источник
Вы можете прочитать популярную статью « Понимание нейронных сетей с помощью глубокой визуализации», в которой обсуждается визуализация сверточных сетей. Его реализация не только отображает каждый слой, но также отображает активации, веса, деконволюции и многое другое, что подробно обсуждается в статье. Это код в
caffe'
. Самое интересное, что вы можете заменить предварительно обученную модель своей собственной.источник
Tensorspace-JS - это фантастический инструмент для 3d визуализации сетевой архитектуры:
https://tensorspace.org/
и вот хороший пост о том, как написать программу:
https://medium.freecodecamp.org/tensorspace-js-a-way-to-3d-visualize-neural-networks-in-browsers-2c0afd7648a8
источник
Netscope - мой повседневный инструмент для моделей Caffe.
источник