Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Keras or Tensorflow function to draw a 3D diagram of a neural network structure?

When creating a neural network with Keras:

model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
...

the function model.summary helps to get the big picture of the structure.

To get a better idea of the structure, is there a function in Keras or Tensorflow (or another library) to automatically generate a 3D diagram of the structure? like this:

or

or

enter image description here

Generating such a diagram file would be totally possible from the model object.

TL;DR:

  • INPUT: a Keras model variable

  • OUTPUT: a PNG image


PS:

  • I already know this online tool: http://alexlenail.me/NN-SVG/LeNet.html and this question How to draw Deep learning network architecture diagrams? but here the idea would be to generate this automatically from Keras.

  • Linked but not identical: How do you visualize neural network architectures? .

  • Different to How can a neural network architecture be visualized with Keras?

  • Linked project: https://github.com/stared/keras-sequential-ascii

  • Linked article: Simple diagrams of convoluted neural networks

  • Doing from keras.utils import plot_model plot_model(model, to_file='model.png', show_shapes=True, show_layer_names=True) already gives something but it's not 3D:

    enter image description here

    Note: add this for Windows: os.environ["PATH"] += os.pathsep + r'C:\Program Files (x86)\Graphviz2.38\bin' after installing Graphviz if you want to use plot_model.

like image 954
Basj Avatar asked Feb 11 '20 21:02

Basj


People also ask

What is TensorFlow and keras used for?

TensorFlow is an open-sourced end-to-end platform, a library for multiple machine learning tasks, while Keras is a high-level neural network library that runs on top of TensorFlow. Both provide high-level APIs used for easily building and training models, but Keras is more user-friendly because it's built-in Python.

Is TensorFlow used for neural networks?

TensorFlow bundles together a slew of machine learning and deep learning models and algorithms (aka neural networks) and makes them useful by way of common programmatic metaphors.

How do I visualize a neural network in keras?

ANN Visualizer is a python library that enables us to visualize an Artificial Neural Network using just a single line of code. It is used to work with Keras and makes use of python's graphviz library to create a neat and presentable graph of the neural network you're building.

What is TensorFlow used for?

TensorFlow is an open-source library developed by Google primarily for deep learning applications. It also supports traditional machine learning. TensorFlow was originally developed for large numerical computations without keeping deep learning in mind.


Video Answer


1 Answers

Are you talking about this: https://keras.io/visualization/

from keras.utils import plot_model
plot_model(model, to_file='model.png')

This saves the structure of your model with input and output tensors as png. But unfortunately only the scheme, not three-dimensional

like image 124
CeKl Avatar answered Oct 07 '22 13:10

CeKl