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:
pip install ann_visualizer
Make sure you have graphviz installed. Install it using:
sudo apt-get 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
import keras;
from keras.models import Sequential;
from 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="");
import keras;
from keras.models import Sequential;
from keras.layers import Dense;
from ann_visualizer.visualize import ann_viz
model = build_cnn_model()
ann_viz(model, title="")
def build_cnn_model():
model = keras.models.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
This library is still unstable. Please report all bug to the issues section. It is currently tested with python3.5
, but it should run just fine on any python3.