A great visualization python library used to work with Keras. It uses python's graphviz library to create a presentable graph of the neural network you are building.
Version 2.0 of the ann_visualizer is now released! The community demanded a CNN visualizer, so we updated our module. You can check out an example of a CNN visualization below!
Happy visualizing!
- Download the
ann_visualizer
folder from the github repository. - Place the
ann_visualizer
folder in the same directory as your main python script.
Use the following command:
pip3 install ann_visualizer
Make sure you have graphviz installed. Install it using:
sudo apt-get install graphviz && pip3 install graphviz
from ann_visualizer.visualize import ann_viz
#Build your model here
ann_viz(model)
model
- The Keras Sequential modelview
- If True, it opens the graph preview after executedfilename
- Where to save the graph. (.gv file format)title
- A title for the graph
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
network = Sequential()
#Hidden Layer#1
network.add(Dense(units=6,
activation='relu',
kernel_initializer='uniform',
input_dim=11))
#Hidden Layer#2
network.add(Dense(units=6,
activation='relu',
kernel_initializer='uniform'))
#Exit Layer
network.add(Dense(units=1,
activation='sigmoid',
kernel_initializer='uniform'))
from ann_visualizer.visualize import ann_viz
ann_viz(network, title="", view=True)
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import (Dense, Conv2D, Dropout, MaxPooling2D,
Flatten)
from ann_visualizer.visualize import ann_viz
def build_cnn_model():
model = Sequential()
model.add(
Conv2D(
32, (3, 3),
padding="same",
input_shape=(32, 32, 3),
activation="relu"))
model.add(Dropout(0.2))
model.add(
Conv2D(
32, (3, 3),
padding="same",
input_shape=(32, 32, 3),
activation="relu"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.2))
model.add(
Conv2D(
64, (3, 3),
padding="same",
input_shape=(32, 32, 3),
activation="relu"))
model.add(Dropout(0.2))
model.add(
Conv2D(
64, (3, 3),
padding="same",
input_shape=(32, 32, 3),
activation="relu"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.2))
model.add(Flatten())
model.add(Dense(512, activation="relu"))
model.add(Dropout(0.2))
model.add(Dense(10, activation="softmax"))
return model
model = build_cnn_model()
ann_viz(model, title="", view=True)
This library is still unstable. Please report all bug to the issues section. It is currently tested with python3.5
and python3.6
, but it should run just fine on any python3.