用于分析tensorflow 网络图的工具对比
在利用tensorflow & keras学习神经网络的过程中,能够利用图形化工具来了解和分析你所设计的网络是非常有意义的,本文结合学习过程,简单介绍记录一下:
tensorboard GRAPHS
这个市tensorflow自己的图形化工具,在Chrome浏览器里察看网络图,基本的样子如图
这个工具的好处是可以随意拖拽,点击具体的网络节点,察看设计细节。
Keras model.summary
这个工具给出文本形式的网络层次图,同时还给出了网络参数的数量级等信息:
Model: "sequential_1"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d_1 (Conv2D) (None, 148, 148, 32) 896
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 74, 74, 32) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 72, 72, 64) 18496
_________________________________________________________________
max_pooling2d_2 (MaxPooling2 (None, 36, 36, 64) 0
_________________________________________________________________
conv2d_3 (Conv2D) (None, 34, 34, 128) 73856
_________________________________________________________________
max_pooling2d_3 (MaxPooling2 (None, 17, 17, 128) 0
_________________________________________________________________
conv2d_4 (Conv2D) (None, 15, 15, 128) 147584
_________________________________________________________________
max_pooling2d_4 (MaxPooling2 (None, 7, 7, 128) 0
_________________________________________________________________
flatten_1 (Flatten) (None, 6272) 0
_________________________________________________________________
dense_1 (Dense) (None, 512) 3211776
_________________________________________________________________
dense_2 (Dense) (None, 1) 513
=================================================================
Total params: 3,453,121
Trainable params: 3,453,121
Non-trainable params: 0
_________________________________________________________________
Keras. plot_model
from keras.utils.vis_utils import plot_model
plot_model(model, to_file="model.png",show_shapes=True);
从代码看,就是到这个工具可以生成一个图形文件,用于描述网络图,但这个工具需要很多依赖,而且从结果看,似乎也没有太多的亮点。
Netron
Netron支持主流各种框架的模型结构可视化工具,需要单独安装,用于从训练的模型文件提取网络层次图,并且在每个节点上提供进一步的层次信息,在浏览器中可以拖拽,放大,和tensorboard比也毫不逊色,而且支持多家的模型文件。
小结
上述四个工具都可以帮助学习网络层次和结构,tensorboard/keras.summary/netron三者结合使用更加方便。