Dibujar redes neuronales convolucionales

¿Se utiliza algún software para dibujar figuras en artículos académicos que describen la estructura de las redes neuronales (específicamente las redes convolucionales)?

La solución más cercana a lo que quiero es la biblioteca TikZ LaTeX que puede producir diagramas como este con una descripción de la red usando código (no puede manejar capas convolucionales ):

red-neuronal-tikz Fuente

Otro software que describe la estructura de la red pero no visualiza en 3D son:

Los diagramas que quiero construir siguen un patrón similar, por lo que me interesa saber si existe un software más especializado que GIMP/GraphViz/Gephi/InkScape o incluso Powerpoint para lograrlo. Sería genial si fuera programable como TikZ.

Aquí hay algunos ejemplos de figuras que me gustaría construir (con sus fuentes a continuación):

ingrese la descripción de la imagen aquí Fuente

LeNet5 Fuente

caraprofunda Fuente

Estoy seguro de que tikz puede producir esos gráficos con el esfuerzo suficiente; puede encontrar algunos ejemplos sorprendentes del uso de tikz en TeX - LaTeX y texample . Sin embargo, pude ver que el formato de entrada podría no ser el que te gustaría. ¿Podría aclarar qué quiere decir con "no puede manejar capas convolucionales"?
Tikz sería genial, aunque no he encontrado un ejemplo. El bit de capas convolucionales son solo los cuadrados en capas o prismas rectangulares en los ejemplos.
¿Desea controlar mediante programación la creación de diagramas o está de acuerdo con diseñar el diagrama mediante una interfaz GUI? ¿También lo quieres en una plataforma específica? ¿El 3D también es un requisito?
Necesito poder visualizar 3D como se muestra en los ejemplos (no es necesario poder ver el diagrama desde diferentes ángulos). La GUI está bien siempre que sea fácil volver y eliminar una capa o agregar una capa sin que tome demasiado tiempo, por ejemplo, en el segundo diagrama de ejemplo con una A: quiero eliminar las capas F6 y S2, debería poder hacer esto mediante la eliminación y las conexiones se resolverán por sí solas.

Respuestas (3)

Escribí un script de python simple para dibujar convnet, con parámetros ajustables. https://github.com/gwding/draw_convnet

Imagen de ejemplo de draw_convnet

Puede ser útil para usted, si solo necesita una ilustración simple/no elegante. Copia el estilo de la Figura 2 en "aprendizaje basado en gradientes aplicado al reconocimiento de documentos"

Gracias por tomarte el tiempo de escribir esto y compartirlo.
@gwding Gracias señor por esta útil publicación. Estoy tratando de jugar con los parámetros en el código, pero recibo errores relacionados con el índice fuera de los límites. ¿Tienes una guía más ilustrativa para cambiar estos parámetros?
@IbrahimAmer No tengo instrucciones escritas. si puede poner su mensaje de error en un problema de github en ese repositorio, podría ayudar
@gwding ¿Cómo obtuvo las dimensiones de 18x18 al realizar circunvoluciones con un kernel de 5x5? Supongo que el texto debajo de cada paso designa lo que se realiza allí para obtener la siguiente imagen, como se puede concluir con el paso Aplanar.
@AleksandarJovanovic, el tamaño dependería del tamaño del kernel, el tamaño de la zancada y el relleno. No recuerdo las configuraciones exactas. pero es probable que se deba a la zancada
cambié la entrada a 64x64 y se superpone con la segunda capa. Cómo puedo solucionar esto ?
@kong puedes intentar jugar con números en x_diff_list

También escribí una herramienta en el navegador para esto: NN-SVG y puede encontrar la fuente aquí . Elija entre el diseño de FCNN, el diseño de LeNet y el diseño de AlexNet.

ingrese la descripción de la imagen aquí

tienes la fuente en github? Necesito bifurcarlo, gracias :)
Se cuelga la PC cuando intento FFNN con tamaño de capas de entrada de 300, 256, 128

Esto es genial: https://github.com/HarisIqbal88/PlotNeuralNet . Resuelve bien mi problema y está escrito en python/tex.