En este artículo, vamos a ver cómo trazar (visualizar) una red neuronal en python usando Graphviz. Graphviz es un módulo de Python que es un software de visualización de gráficos de código abierto. Es muy popular entre los investigadores hacer visualizaciones. Representa información estructural como diagramas de gráficos abstractos y redes, lo que significa que solo necesita proporcionar una descripción textual del gráfico con respecto a su estructura topológica y esto leerá y creará una imagen automáticamente.
Instalación:
Para terminal de ventana:
pip install graphviz
Para terminal anaconda:
conda install -c anaconda graphviz
Trazar un gráfico simple con Graphviz
Acercarse:
- Módulo de importación.
- Crea un nuevo objeto de Diagraph.
- Agregue node() y edge() en el objeto de gráfico.
- Guarde el código fuente con el objeto render().
A continuación se muestra la implementación:
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)
Producción:
Graph.png
Podemos comprobar t
Python3
print(dot.source)
Producción:
// A Round Graph digraph { A [label=Alex] B [label=Rishu] C [label=Mohe] D [label=Satyam] A -> B A -> C A -> D B -> C [constraint=false] C -> D [constraint=false] }
Trazar (visualizar) una red neuronal con Graphviz
Aquí estamos usando el código fuente para la implementación que vemos en los ejemplos anteriores:
Discutamos el enfoque:
- Cree un objeto dígrafo.
- Defina la dirección del gráfico utilizando rankdir.
- Crea un subgrafo con las siguientes cosas:
- Establecer color.
- Establecer propiedades de Node.
- Establecer el nivel del subgráfico
- Cree el borde entre el objeto con ( -> ).
Este código fuente debe guardarse en un archivo .txt (myfile.txt) y el
Ejemplo 1:
digraph G { rankdir=LR splines=line node [fixedsize=true, label=""]; subgraph cluster_0 { color=white; node [style=solid,color=blue4, shape=circle]; x1 x2 x3 x4; label = "layer 1 (Input layer)"; } subgraph cluster_1 { color=white; node [style=solid,color=red2, shape=circle]; a12 a22 a32; label = "layer 2 (hidden layer)"; } subgraph cluster_2 { color=white; node [style=solid,color=seagreen2, shape=circle]; O; label="layer 3 (output layer)"; } 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 }
Ejecuta esto en la terminal:
dot -Tpng -O myfile.txt
Producción:
Ejemplo 2:
digraph G { rankdir=LR splines=line nodesep=.05; node [label=""]; subgraph cluster_0 { color=white; node [style=solid,color=blue4, shape=circle]; x1 x2 x3; label = "layer 1"; } subgraph cluster_1 { color=white; node [style=solid,color=red2, shape=circle]; a12 a22 a32 a42 a52; label = "layer 2"; } subgraph cluster_2 { color=white; node [style=solid,color=red2, shape=circle]; a13 a23 a33 a43 a53; label = "layer 3"; } subgraph cluster_3 { color=white; node [style=solid,color=seagreen2, shape=circle]; O1 O2 O3 O4; label="layer 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; a12 -> a13 a22 -> a13 a32 -> a13 a42 -> a13 a52 -> a13 a12 -> a23 a22 -> a23 a32 -> a23 a42 -> a23 a52 -> a23 a12 -> a33 a22 -> a33 a32 -> a33 a42 -> a33 a52 -> a33 a12 -> a43 a22 -> a43 a32 -> a43 a42 -> a43 a52 -> a43 a12 -> a53 a22 -> a53 a32 -> a53 a42 -> a53 a52 -> a53 a13 -> O1 a23 -> O2 a33 -> O3 a43 -> O4 a53 -> O4 }
Producción:
Publicación traducida automáticamente
Artículo escrito por kumar_satyam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA