Как визуализировать нейронную сеть на Python с помощью Graphviz?
В этой статье мы увидим, как построить (визуализировать) нейронную сеть на Python с помощью Graphviz. Graphviz - это модуль Python, представляющий собой программное обеспечение для визуализации графиков с открытым исходным кодом. Визуализация широко популярна среди исследователей. Он представляет структурную информацию в виде диаграмм абстрактных графов и сетей, что означает, что вам нужно только предоставить только текстовое описание графа, касающееся его топологической структуры, и это будет автоматически читать и создавать изображение.
Установка:
Для оконного терминала:
pip install graphviz
Для терминала анаконды:
conda install -c anaconda graphviz
Построение простого графика с помощью Graphviz
Подход:
- Модуль импорта.
- Создайте новый объект Diagraph.
- Добавьте node () и edge () в объект графа.
- Сохраните исходный код с помощью объекта render ().
Ниже представлена реализация:
Python3
# import module from graphviz import Digraph # instantiating object dot = Digraph(comment = 'A Round Graph' ) # Adding nodes dot.node( 'A' , 'Alex' ) dot.node( 'B' , 'Rishu' ) dot.node( 'C' , 'Mohe' ) dot.node( 'D' , 'Satyam' ) # Adding edges dot.edges([ 'AB' , 'AC' , 'AD' ]) dot.edge( 'B' , 'C' , constraint = 'false' ) dot.edge( 'C' , 'D' , constraint = 'false' ) # saving source code dot. format = 'png' dot.render( 'Graph' , view = True ) |
Выход:
Graph.png
Мы можем проверить сгенерированный исходный код с помощью методов dot.source:
Python3
print (dot.source) |
Выход:
// Круглый график digraph { А [label = Alex] Б [label = Ришу] C [label = Mohe] D [label = Satyam] А -> В А -> С А -> D B -> C [ограничение = ложь] C -> D [ограничение = ложь] }
Построение (визуализация) нейронной сети с помощью Graphviz
Здесь мы используем исходный код для реализации, который мы видим в приведенных выше примерах:
Обсудим подход:
- Создайте объект орграфа.
- Определите направление графика с помощью rankdir.
- Создайте подграф со следующими элементами:
- Установите цвет.
- Задайте свойства узла.
- Установить уровень подграфа
- Создайте край между объектами с помощью ( -> ).
Этот исходный код необходимо сохранить в файле .txt (myfile.txt) и запустить `dot -Tpng -O myfile.txt` из командной строки, чтобы получить рисунок в формате .png с диаграммой.
Пример 1:
digraph G { rankdir = LR шлицы = линия узел [fixedsize = true, label = ""]; subgraph cluster_0 { цвет = белый; узел [стиль = сплошной, цвет = синий4, форма = круг]; х1 х2 х3 х4; label = "слой 1 (входной слой)"; } subgraph cluster_1 { цвет = белый; узел [стиль = сплошной, цвет = красный2, форма = круг]; а12 а22 а32; label = "слой 2 (скрытый слой)"; } subgraph cluster_2 { цвет = белый; узел [style = solid, color = seagreen2, shape = circle]; О; label = "слой 3 (выходной слой)"; } x1 -> a12; x1 -> a22; x1 -> a32; x2 -> a12; x2 -> a22; x2 -> a32; x3 -> a12; x3 -> a22; x3 -> a32; x4 -> a12; x4 -> a22; x4 -> a32; a12 -> O a22 -> O a32 -> O }
Запустите это в терминал:
точка -Tpng -O myfile.txt
Выход:
Пример 2:
digraph G { rankdir = LR шлицы = линия nodesep = .05; узел [label = ""]; subgraph cluster_0 { цвет = белый; узел [стиль = сплошной, цвет = синий4, форма = круг]; х1 х2 х3; label = "слой 1"; } subgraph cluster_1 { цвет = белый; узел [стиль = сплошной, цвет = красный2, форма = круг]; а12 а22 а32 а42 а52; label = "слой 2"; } subgraph cluster_2 { цвет = белый; узел [стиль = сплошной, цвет = красный2, форма = круг]; а13 а23 а33 а43 а53; label = "слой 3"; } subgraph cluster_3 { цвет = белый; узел [style = solid, color = seagreen2, shape = circle]; O1 O2 O3 O4; label = "слой 4"; } x1 -> a12; x1 -> a22; x1 -> a32; x1 -> a42; x1 -> a52; x2 -> a12; x2 -> a22; x2 -> a32; x2 -> a42; x2 -> a52; x3 -> a12; x3 -> a22; x3 -> a32; x3 -> a42; x3 -> a52; а12 -> а13 а22 -> а13 а32 -> а13 а42 -> а13 а52 -> а13 а12 -> а23 а22 -> а23 а32 -> а23 а42 -> а23 а52 -> а23 а12 -> а33 а22 -> а33 а32 -> а33 а42 -> а33 а52 -> а33 а12 -> а43 а22 -> а43 а32 -> а43 а42 -> а43 а52 -> а43 а12 -> а53 а22 -> а53 а32 -> а53 а42 -> а53 а52 -> а53 a13 -> O1 a23 -> O2 a33 -> O3 a43 -> O4 a53 -> O4 }
Выход:
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.