NNtecture is a Python package for Neural Network architecture visualization.
NNtecture package runs under Python 3.6+. It can be installed from PyPI:
pip install nntecture
To render the generated DOT source code, you also need to install Graphviz (download page).
Make sure that the directory containing the dot
executable is on your
systems' path.
After installation, the package is ready to be imported.
from nntecture import DrawNN
Creating your Neural Network architecture with NNtecture is designed to be as easy and intuitive as possible. Drawing a simple architecture can be done in a single line of code (see below).
DrawNN([2, 4, 4, 2]).draw()
The capabilities are not limited into this base form. The architecture can be easily customised as demonstrated in below example.
# init
nn = DrawNN([3, 3, 3, 3], nn_type='RNN')
# draw
nn.draw(fillcolor='#AF628F',
graph_label='Recurrent Neural Network (RNN)',
linewidth=0.5,
fontname='times',
node_labels=True,
node_fontcolor='#ffffff')
Once satisfied with the architecture, the results can be saved into your desired form.
# create your architecture
perceptron = DrawNN([2, 1])
perceptron.draw(graph_label='Perceptron (P)', fillcolor='lightblue', linewidth=4)
# save to file
perceptron.save(filename='perceptron', output_format='jpg', size='5,5!', view=True)
Styling your architecture is not limited into the built-in capabilities. In addition, by accessing graph_object
, one can further customise the drawing with graphviz (see example below). For more instructions, see graphviz documentation.
# init
nn = DrawNN([4, 3, 2, 1])
nn.draw(direction='UD', fillcolor='blue')
# further customization
nn.graph_object.edge_attr["style"] = "setlinewidth(2)"
nn.graph_object.edge_attr['color'] = 'purple'
nn.graph_object.graph_attr['bgcolor'] = 'black'
nn.graph_object.node_attr["color"] = "white"
# display
nn.graph_object