A Python Library for Visualizing Keras Models.
Use python package manager (pip) to install Keras Visualizer.
pip install keras-visualizer
Use python package manager (pip) to upgrade Keras Visualizer.
pip install keras-visualizer --upgrade
from keras_visualizer import visualizer
# create your model here
# model = ...
visualizer(model, file_format='png')
visualizer(model, file_name='graph', file_format=None, view=False, settings=None)
model
: a Keras model instance.file_name
: where to save the visualization.file_format
: file format to save 'pdf', 'png'.view
: open file after process if True.settings
: a dictionary of available settings.
Note :
- set
file_format='png'
orfile_format='pdf'
to save visualization file.- use
view=True
to open visualization file.- use settings to customize output image.
you can customize settings for your output image. here is the default settings dictionary:
settings = {
# ALL LAYERS
'MAX_NEURONS': 10,
'ARROW_COLOR': '#707070',
# INPUT LAYERS
'INPUT_DENSE_COLOR': '#2ecc71',
'INPUT_EMBEDDING_COLOR': 'black',
'INPUT_EMBEDDING_FONT': 'white',
'INPUT_GRAYSCALE_COLOR': 'black:white',
'INPUT_GRAYSCALE_FONT': 'white',
'INPUT_RGB_COLOR': '#e74c3c:#3498db',
'INPUT_RGB_FONT': 'white',
'INPUT_LAYER_COLOR': 'black',
'INPUT_LAYER_FONT': 'white',
# HIDDEN LAYERS
'HIDDEN_DENSE_COLOR': '#3498db',
'HIDDEN_CONV_COLOR': '#5faad0',
'HIDDEN_CONV_FONT': 'black',
'HIDDEN_POOLING_COLOR': '#8e44ad',
'HIDDEN_POOLING_FONT': 'white',
'HIDDEN_FLATTEN_COLOR': '#2c3e50',
'HIDDEN_FLATTEN_FONT': 'white',
'HIDDEN_DROPOUT_COLOR': '#f39c12',
'HIDDEN_DROPOUT_FONT': 'black',
'HIDDEN_ACTIVATION_COLOR': '#00b894',
'HIDDEN_ACTIVATION_FONT': 'black',
'HIDDEN_LAYER_COLOR': 'black',
'HIDDEN_LAYER_FONT': 'white',
# OUTPUT LAYER
'OUTPUT_DENSE_COLOR': '#e74c3c',
'OUTPUT_LAYER_COLOR': 'black',
'OUTPUT_LAYER_FONT': 'white',
}
Note:
- set
'MAX_NEURONS': None
to disable max neurons constraint. - see list of color names here.
from keras_visualizer import visualizer
my_settings = {
'MAX_NEURONS': None,
'INPUT_DENSE_COLOR': 'teal',
'HIDDEN_DENSE_COLOR': 'gray',
'OUTPUT_DENSE_COLOR': 'crimson'
}
# model = ...
visualizer(model, file_format='png', settings=my_settings)
you can use simple examples as .py
or .ipynb
format in examples directory.
from keras import models, layers
from keras_visualizer import visualizer
model = models.Sequential([
layers.Dense(64, activation='relu', input_shape=(8,)),
layers.Dense(6, activation='softmax'),
layers.Dense(32),
layers.Dense(9, activation='sigmoid')
])
visualizer(model, file_format='png', view=True)
from keras import models, layers
from keras_visualizer import visualizer
model = models.Sequential()
model.add(layers.Conv2D(64, (3, 3), input_shape=(28, 28, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(3))
model.add(layers.Dropout(0.5))
model.add(layers.Activation('sigmoid'))
model.add(layers.Dense(1))
visualizer(model, file_format='png', view=True)
from keras import models, layers
from keras_visualizer import visualizer
model = models.Sequential()
model.add(layers.Embedding(64, output_dim=256))
model.add(layers.LSTM(128))
model.add(layers.Dense(1, activation='sigmoid'))
visualizer(model, file_format='png', view=True)
-
Core layers
- Input object
- Dense layer
- Activation layer
- Embedding layer
- Masking layer
- Lambda layer
-
Convolution layers
- Conv1D layer
- Conv2D layer
- Conv3D layer
- SeparableConv1D layer
- SeparableConv2D layer
- DepthwiseConv2D layer
- Conv1DTranspose layer
- Conv2DTranspose layer
- Conv3DTranspose layer
-
Pooling layers
- MaxPooling1D layer
- MaxPooling2D layer
- MaxPooling3D layer
- AveragePooling1D layer
- AveragePooling2D layer
- AveragePooling3D layer
- GlobalMaxPooling1D layer
- GlobalMaxPooling2D layer
- GlobalMaxPooling3D layer
- GlobalAveragePooling1D layer
- GlobalAveragePooling2D layer
- GlobalAveragePooling3D layer
-
Reshaping layers
- Reshape layer
- Flatten layer
- RepeatVector layer
- Permute layer
- Cropping1D layer
- Cropping2D layer
- Cropping3D layer
- UpSampling1D layer
- UpSampling2D layer
- UpSampling3D layer
- ZeroPadding1D layer
- ZeroPadding2D layer
- ZeroPadding3D layer
-
Regularization layers
- Dropout layer
- SpatialDropout1D layer
- SpatialDropout2D layer
- SpatialDropout3D layer
- GaussianDropout layer
- GaussianNoise layer
- ActivityRegularization layer
- AlphaDropout layer