Visualizing Artificial Neural Networks
Publisher : Venkat Sayana
Visualizing Artificial Neural Networks
ANN Visualizer is a python library that enables us to visualize an Artificial Neural Network
It is used to work with Kerasand makes use of python’s graphviz library to create a neat and presentable graph of the neural network you’re building.
With advanced in deep learning, you can now visualise the entire process Convolutional Neural Network you’ve built.
Installation
We will need 3 libraries for this demo • keras
Visualizing Artificial Neural Networks
ANN Visualizer is a python library that enables us to visualize an Artificial Neural Network
It is used to work with Kerasand makes use of python’s graphviz library to create a neat and presentable graph of the neural network you’re building.
With advanced in deep learning, you can now visualise the entire process Convolutional Neural Network you’ve built.
Installation
We will need 3 libraries for this demo • keras
- ANNvisualizer
- graphviz
You can install the library using the below commands:
pip3 install keras
pip3 install ann_visualizer
pip install graphviz
# Create your first MLP in Keras
from keras.models import Sequential
from keras.layers import Dense
import numpy
/Users/venkateswarlusayana/anaconda3/lib/python3.6/
site-packages/h5py/__init__.py:34: FutureWarning:
Conversion of the second argument of issubdtype from
`float` to `np.floating` is deprecated. In future, it
will be treated as `np.float64 ==
np.dtype(float).type`.
from ._conv import register_converters as
_register_converters
Using TensorFlow backend.
In [2]:
In [3]:
In [4]: In [5]:
In [6]:
In [7]: In [8]:
Epoch 1/150
768/768 [==============================] - 0s 538us/
step - loss: 3.6821 - acc: 0.5951
Epoch 2/150
768/768 [==============================] - 0s 142us/
step - loss: 0.9301 - acc: 0.6003
Epoch 3/150
768/768 [==============================] - 0s 132us/
step - loss: 0.7462 - acc: 0.6380
Epoch 4/150
768/768 [==============================] - 0s 128us/
step - loss: 0.7104 - acc: 0.6549
# fix random seed for reproducibility
numpy.random.seed(7)
# load pima indians dataset
dataset = numpy.loadtxt("pima-indians-diabetes.csv",
delimiter=",")
# split into input (X) and output (Y) variables
X = dataset[:,0:8]
Y = dataset[:,8]
# create model
model = Sequential()
model.add(Dense(12, input_dim=8, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# Compile model
model.compile(loss='binary_crossentropy',
optimizer='adam', metrics=['accuracy'])
# Fit the model
model.fit(X, Y, epochs=150, batch_size=10)
Epoch 5/150
768/768 [==============================] - 0s 131us/
step - loss: 0.6811 - acc: 0.6784
Epoch 6/150
768/768 [==============================] - 0s 137us/
step - loss: 0.6505 - acc: 0.6810
Epoch 7/150
768/768 [==============================] - 0s 137us/
step - loss: 0.6498 - acc: 0.6706
Epoch 8/150
768/768 [==============================] - 0s 132us/
step - loss: 0.6360 - acc: 0.6875
Epoch 9/150
768/768 [==============================] - 0s 139us/
step - loss: 0.6240 - acc: 0.6914
Epoch 10/150
768/768 [==============================] - 0s 137us/
step - loss: 0.6288 - acc: 0.6784
Epoch 11/150
768/768 [==============================] - 0s 135us/
step - loss: 0.6472 - acc: 0.6732
Epoch 12/150
768/768 [==============================] - 0s 144us/
step - loss: 0.6390 - acc: 0.6758
Epoch 13/150
768/768 [==============================] - 0s 130us/
step - loss: 0.6249 - acc: 0.6745
Epoch 14/150
768/768 [==============================] - 0s 131us/
step - loss: 0.6179 - acc: 0.6992
Epoch 15/150
768/768 [==============================] - 0s 132us/
step - loss: 0.6019 - acc: 0.6979
Epoch 16/150
768/768 [==============================] - 0s 154us/
step - loss: 0.5883 - acc: 0.7018
Epoch 17/150
768/768 [==============================] - 0s 155us/
step - loss: 0.5857 - acc: 0.6966
Epoch 18/150
768/768 [==============================] - 0s 158us/
step - loss: 0.6009 - acc: 0.6875
Epoch 19/150
768/768 [==============================] - 0s 164us/
step - loss: 0.5797 - acc: 0.7109
Epoch 20/150
768/768 [==============================] - 0s 151us/
step - loss: 0.5796 - acc: 0.7174
Epoch 21/150
768/768 [==============================] - 0s 151us/
step - loss: 0.5681 - acc: 0.7161
Epoch 22/150
768/768 [==============================] - 0s 133us/
step - loss: 0.5820 - acc: 0.6979
Epoch 23/150
768/768 [==============================] - 0s 134us/
step - loss: 0.5734 - acc: 0.7083
Epoch 24/150
768/768 [==============================] - 0s 150us/
step - loss: 0.5674 - acc: 0.7305
Epoch 25/150
768/768 [==============================] - 0s 147us/
step - loss: 0.5572 - acc: 0.7344
Epoch 26/150
768/768 [==============================] - 0s 145us/
step - loss: 0.5705 - acc: 0.7044
Epoch 27/150
768/768 [==============================] - 0s 143us/
step - loss: 0.5553 - acc: 0.7214
Epoch 28/150
768/768 [==============================] - 0s 138us/
step - loss: 0.5549 - acc: 0.7318
Epoch 29/150
768/768 [==============================] - 0s 135us/
step - loss: 0.5742 - acc: 0.7161
Epoch 30/150
768/768 [==============================] - 0s 133us/
step - loss: 0.5611 - acc: 0.7201
Epoch 31/150
768/768 [==============================] - 0s 134us/
step - loss: 0.5687 - acc: 0.7161
Epoch 32/150
768/768 [==============================] - 0s 132us/
step - loss: 0.5640 - acc: 0.7135
Epoch 33/150
768/768 [==============================] - 0s 134us/
step - loss: 0.5512 - acc: 0.7227
Epoch 34/150
768/768 [==============================] - 0s 137us/
step - loss: 0.5504 - acc: 0.7253
Epoch 35/150
768/768 [==============================] - 0s 138us/
step - loss: 0.5496 - acc: 0.7279
Epoch 36/150
768/768 [==============================] - 0s 134us/
step - loss: 0.5647 - acc: 0.7057
Epoch 37/150
768/768 [==============================] - 0s 131us/
step - loss: 0.5335 - acc: 0.7422
Epoch 38/150
768/768 [==============================] - 0s 131us/
step - loss: 0.5405 - acc: 0.7266
Epoch 39/150
768/768 [==============================] - 0s 134us/
step - loss: 0.5463 - acc: 0.7253
Epoch 40/150
768/768 [==============================] - 0s 139us/
step - loss: 0.5440 - acc: 0.7187
Epoch 41/150
768/768 [==============================] - 0s 140us/
step - loss: 0.5435 - acc: 0.7305
Epoch 42/150
768/768 [==============================] - 0s 142us/
step - loss: 0.5387 - acc: 0.7409
Epoch 43/150
768/768 [==============================] - 0s 138us/
step - loss: 0.5319 - acc: 0.7539
Epoch 44/150
768/768 [==============================] - 0s 130us/
step - loss: 0.5331 - acc: 0.7448
Epoch 45/150
768/768 [==============================] - 0s 137us/
step - loss: 0.5331 - acc: 0.7565
Epoch 46/150
768/768 [==============================] - 0s 141us/
step - loss: 0.5271 - acc: 0.7487
Epoch 47/150
768/768 [==============================] - 0s 149us/
step - loss: 0.5333 - acc: 0.7383
Epoch 48/150
768/768 [==============================] - 0s 156us/
step - loss: 0.5334 - acc: 0.7422
Epoch 49/150
768/768 [==============================] - 0s 134us/
step - loss: 0.5335 - acc: 0.7461
Epoch 50/150
768/768 [==============================] - 0s 142us/
step - loss: 0.5271 - acc: 0.7344
Epoch 51/150
768/768 [==============================] - 0s 131us/
step - loss: 0.5281 - acc: 0.7500
Epoch 52/150
768/768 [==============================] - 0s 134us/
step - loss: 0.5299 - acc: 0.7474
Epoch 53/150
768/768 [==============================] - 0s 152us/
step - loss: 0.5363 - acc: 0.7435
Epoch 54/150
768/768 [==============================] - 0s 140us/
step - loss: 0.5367 - acc: 0.7318
Epoch 55/150
768/768 [==============================] - 0s 134us/
step - loss: 0.5224 - acc: 0.7474
Epoch 56/150
768/768 [==============================] - 0s 147us/
step - loss: 0.5293 - acc: 0.7487
Epoch 57/150
768/768 [==============================] - 0s 133us/
step - loss: 0.5308 - acc: 0.7370
Epoch 58/150
768/768 [==============================] - 0s 133us/
step - loss: 0.5219 - acc: 0.7526
Epoch 59/150
768/768 [==============================] - 0s 135us/
step - loss: 0.5120 - acc: 0.7617
Epoch 60/150
768/768 [==============================] - 0s 138us/
step - loss: 0.5337 - acc: 0.7409
Epoch 61/150
768/768 [==============================] - 0s 135us/
step - loss: 0.5262 - acc: 0.7370
Epoch 62/150
768/768 [==============================] - 0s 138us/
step - loss: 0.5158 - acc: 0.7513
Epoch 63/150
768/768 [==============================] - 0s 133us/
step - loss: 0.5428 - acc: 0.7344
Epoch 64/150
768/768 [==============================] - 0s 132us/
step - loss: 0.5303 - acc: 0.7422
Epoch 65/150
768/768 [==============================] - 0s 134us/
step - loss: 0.5193 - acc: 0.7487
Epoch 66/150
768/768 [==============================] - 0s 141us/
step - loss: 0.5063 - acc: 0.7513
Epoch 67/150
768/768 [==============================] - 0s 132us/
step - loss: 0.5147 - acc: 0.7383
Epoch 68/150
768/768 [==============================] - 0s 134us/
step - loss: 0.5131 - acc: 0.7591
Epoch 69/150
768/768 [==============================] - 0s 139us/
step - loss: 0.5131 - acc: 0.7513
Epoch 70/150
768/768 [==============================] - 0s 139us/
step - loss: 0.5375 - acc: 0.7227
Epoch 71/150
768/768 [==============================] - 0s 134us/
step - loss: 0.5170 - acc: 0.7396
Epoch 72/150
768/768 [==============================] - 0s 136us/
step - loss: 0.5162 - acc: 0.7513
Epoch 73/150
768/768 [==============================] - 0s 134us/
step - loss: 0.5158 - acc: 0.7487
Epoch 74/150
768/768 [==============================] - 0s 139us/
step - loss: 0.5095 - acc: 0.7630
Epoch 75/150
768/768 [==============================] - 0s 151us/
step - loss: 0.5089 - acc: 0.7604
Epoch 76/150
768/768 [==============================] - 0s 150us/
step - loss: 0.5106 - acc: 0.7552
Epoch 77/150
768/768 [==============================] - 0s 140us/
step - loss: 0.5159 - acc: 0.7643
Epoch 78/150
768/768 [==============================] - 0s 143us/
step - loss: 0.5118 - acc: 0.7500
Epoch 79/150
768/768 [==============================] - 0s 134us/
step - loss: 0.5137 - acc: 0.7422
Epoch 80/150
768/768 [==============================] - 0s 140us/
step - loss: 0.5112 - acc: 0.7591
Epoch 81/150
768/768 [==============================] - 0s 143us/
step - loss: 0.5055 - acc: 0.7682
Epoch 82/150
768/768 [==============================] - 0s 145us/
step - loss: 0.5048 - acc: 0.7526
Epoch 83/150
768/768 [==============================] - 0s 134us/
step - loss: 0.4997 - acc: 0.7604
Epoch 84/150
768/768 [==============================] - 0s 140us/
step - loss: 0.4977 - acc: 0.7578
Epoch 85/150
768/768 [==============================] - 0s 144us/
step - loss: 0.5055 - acc: 0.7500
Epoch 86/150
768/768 [==============================] - 0s 141us/
step - loss: 0.5043 - acc: 0.7487
Epoch 87/150
768/768 [==============================] - 0s 149us/
step - loss: 0.4991 - acc: 0.7513
Epoch 88/150
768/768 [==============================] - 0s 140us/
step - loss: 0.5024 - acc: 0.7669
Epoch 89/150
768/768 [==============================] - 0s 138us/
step - loss: 0.5050 - acc: 0.7656
Epoch 90/150
768/768 [==============================] - 0s 143us/
step - loss: 0.5085 - acc: 0.7526
Epoch 91/150
768/768 [==============================] - 0s 149us/
step - loss: 0.5032 - acc: 0.7565
Epoch 92/150
768/768 [==============================] - 0s 151us/
step - loss: 0.5047 - acc: 0.7422
Epoch 93/150
768/768 [==============================] - 0s 146us/
step - loss: 0.4969 - acc: 0.7630
Epoch 94/150
768/768 [==============================] - 0s 131us/
step - loss: 0.4998 - acc: 0.7643
Epoch 95/150
768/768 [==============================] - 0s 150us/
step - loss: 0.5030 - acc: 0.7552
Epoch 96/150
768/768 [==============================] - 0s 140us/
step - loss: 0.4912 - acc: 0.7682
Epoch 97/150
768/768 [==============================] - 0s 132us/
step - loss: 0.4983 - acc: 0.7734
Epoch 98/150
768/768 [==============================] - 0s 143us/
step - loss: 0.4893 - acc: 0.7630
Epoch 99/150
768/768 [==============================] - 0s 140us/
step - loss: 0.4901 - acc: 0.7682
Epoch 100/150
768/768 [==============================] - 0s 155us/
step - loss: 0.4844 - acc: 0.7773
Epoch 101/150
768/768 [==============================] - 0s 143us/
step - loss: 0.4901 - acc: 0.7760
Epoch 102/150
768/768 [==============================] - 0s 141us/
step - loss: 0.4986 - acc: 0.7591
Epoch 103/150
768/768 [==============================] - 0s 135us/
step - loss: 0.4999 - acc: 0.7552
Epoch 104/150
768/768 [==============================] - 0s 143us/
step - loss: 0.4923 - acc: 0.7852
Epoch 105/150
768/768 [==============================] - 0s 145us/
step - loss: 0.5326 - acc: 0.7448
Epoch 106/150
768/768 [==============================] - 0s 138us/
step - loss: 0.4948 - acc: 0.7695
Epoch 107/150
768/768 [==============================] - 0s 142us/
step - loss: 0.4912 - acc: 0.7669
Epoch 108/150
768/768 [==============================] - 0s 161us/
step - loss: 0.4999 - acc: 0.7682
Epoch 109/150
768/768 [==============================] - 0s 137us/
step - loss: 0.4866 - acc: 0.7669
Epoch 110/150
768/768 [==============================] - 0s 139us/
step - loss: 0.4898 - acc: 0.7708
Epoch 111/150
768/768 [==============================] - 0s 148us/
step - loss: 0.4854 - acc: 0.7760
Epoch 112/150
768/768 [==============================] - 0s 144us/
step - loss: 0.4903 - acc: 0.7630
Epoch 113/150
768/768 [==============================] - 0s 146us/
step - loss: 0.4990 - acc: 0.7643
Epoch 114/150
768/768 [==============================] - 0s 144us/
step - loss: 0.4903 - acc: 0.7617
Epoch 115/150
768/768 [==============================] - 0s 144us/
step - loss: 0.4933 - acc: 0.7747
Epoch 116/150
768/768 [==============================] - 0s 143us/
step - loss: 0.4953 - acc: 0.7734
Epoch 117/150
768/768 [==============================] - 0s 146us/
step - loss: 0.4907 - acc: 0.7604
Epoch 118/150
768/768 [==============================] - 0s 147us/
step - loss: 0.4915 - acc: 0.7773
Epoch 119/150
768/768 [==============================] - 0s 146us/
step - loss: 0.4831 - acc: 0.7669
Epoch 120/150
768/768 [==============================] - 0s 149us/
step - loss: 0.4958 - acc: 0.7786
Epoch 121/150
768/768 [==============================] - 0s 134us/
step - loss: 0.4944 - acc: 0.7708
Epoch 122/150
768/768 [==============================] - 0s 144us/
step - loss: 0.4858 - acc: 0.7799
Epoch 123/150
768/768 [==============================] - 0s 146us/
step - loss: 0.4824 - acc: 0.7682
Epoch 124/150
768/768 [==============================] - 0s 138us/
step - loss: 0.4838 - acc: 0.7786
Epoch 125/150
768/768 [==============================] - 0s 142us/
step - loss: 0.4878 - acc: 0.7812
Epoch 126/150
768/768 [==============================] - 0s 153us/
step - loss: 0.4828 - acc: 0.7760
Epoch 127/150
768/768 [==============================] - 0s 145us/
step - loss: 0.4909 - acc: 0.7669
Epoch 128/150
768/768 [==============================] - 0s 144us/
step - loss: 0.4729 - acc: 0.7799
Epoch 129/150
768/768 [==============================] - 0s 145us/
step - loss: 0.4846 - acc: 0.7708
Epoch 130/150
768/768 [==============================] - 0s 144us/
step - loss: 0.4739 - acc: 0.7865
Epoch 131/150
768/768 [==============================] - 0s 145us/
step - loss: 0.4825 - acc: 0.7695
Epoch 132/150
768/768 [==============================] - 0s 142us/
step - loss: 0.4837 - acc: 0.7760
Epoch 133/150
768/768 [==============================] - 0s 140us/
step - loss: 0.4838 - acc: 0.7682
Epoch 134/150
768/768 [==============================] - 0s 142us/
step - loss: 0.4849 - acc: 0.7760
Epoch 135/150
768/768 [==============================] - 0s 142us/
step - loss: 0.4792 - acc: 0.7773
Epoch 136/150
768/768 [==============================] - 0s 143us/
step - loss: 0.4746 - acc: 0.7773
Epoch 137/150
768/768 [==============================] - 0s 145us/
step - loss: 0.4700 - acc: 0.7760
Epoch 138/150
768/768 [==============================] - 0s 148us/
step - loss: 0.4822 - acc: 0.7773
Epoch 139/150
768/768 [==============================] - 0s 146us/
step - loss: 0.4677 - acc: 0.7891
Epoch 140/150
768/768 [==============================] - 0s 144us/
step - loss: 0.4821 - acc: 0.7852
Epoch 141/150
768/768 [==============================] - 0s 155us/
step - loss: 0.4751 - acc: 0.7852
Epoch 142/150
768/768 [==============================] - 0s 148us/
step - loss: 0.4831 - acc: 0.7721
Epoch 143/150
768/768 [==============================] - 0s 153us/
step - loss: 0.4770 - acc: 0.7656
Epoch 144/150 768/768 [==============================] - 0s 155us/ step - loss: 0.4766 - acc: 0.7682 Epoch 145/150 768/768 [==============================] - 0s 145us/ step - loss: 0.4915 - acc: 0.7682 Epoch 146/150 768/768 [==============================] - 0s 142us/ step - loss: 0.4923 - acc: 0.7708 Epoch 147/150 768/768 [==============================] - 0s 148us/ step - loss: 0.4858 - acc: 0.7773 Epoch 148/150 768/768 [==============================] - 0s 145us/ step - loss: 0.4725 - acc: 0.7721 Epoch 149/150 768/768 [==============================] - 0s 143us/ step - loss: 0.4764 - acc: 0.7669 Epoch 150/150 768/768 [==============================] - 0s 147us/ step - loss: 0.4766 - acc: 0.7695 Out[8]: <keras.callbacks.History at 0x18196b5978> In [9]:
768/768 [==============================] - 0s 63us/step
acc: 79.17% In [10]:
# evaluate the model
scores = model.evaluate(X, Y)
print("\n%s: %.2f%%" % (model.metrics_names[1],
scores[1]*100))
from ann_visualizer.visualize import ann_viz; ann_viz(model, title="My first neural network”)
To generate the visualization, you need to follow the below command structure:
ann_viz(model, view=True, filename=”network.gv”, title=”MyNeural Network”)
To generate the visualization, you need to follow the below command structure:
ann_viz(model, view=True, filename=”network.gv”, title=”MyNeural Network”)
– Your Keras sequential model
– If set to true, it opens the graph preview after the command has been executed
filename – Where to save the graph. (it’s saved in a ‘.gv’ file format)
– If set to true, it opens the graph preview after the command has been executed
filename – Where to save the graph. (it’s saved in a ‘.gv’ file format)
• •
• •
first neural network model in Keras.
Let’s tie itann_viz() together into this code.
In [10]:
from ann_visualizer.visualize import ann_viz; ann_viz(model, title="My first neural network”)
• •
first neural network model in Keras.
Let’s tie itann_viz() together into this code.
In [10]:
from ann_visualizer.visualize import ann_viz; ann_viz(model, title="My first neural network”)
model
view
title – The title for the visualized ANN You have just seen how you can easily create your
My first neural network
Input Layer
43218765
10 9 18 17 16 15 14 13 12 11
26 25 24 23 22 21 20 19
27
Output Layer
(+2)
Comments
Post a Comment