神经网络绘图篇!本次为大家介绍的是神经网络的可视化工具和绘图软件。在搭建神经网络以及后期论文写作时,可视化的神经网络模型将在很大程度上帮助我们直观地理解模型结构和数据的流动。除了大家常用的 PPT+AI+PS 之外,小助手也为大家整理了Github 上各路大神开发的绘图软件信息。
神经网络绘图软件最新汇总
提供 三种典型 的神经网络绘图风格,个性化参数多 交互式绘图
基于tikz的tex的宏指令绘制 绘制脚本繁杂
底层基于tikz的tex的宏指令绘制 上层提供基于python的描述框架,绘制脚本简单 可绘制复杂的网络结构
基于javascript和css绘制 仅支持基本Layer类型
简单易用 底层基于matplotlib绘制
基于Haskell语言
计算图
支持工具: ONNX, Keras, CoreML, Caffe2, MXNet, TensorFlow Lite, Caffe, PyTorch, Torch, CNTK, PaddlePaddle, Darknet, scikit-learn, TensorFlow.js, TensorFlow. 提供运行方式: 浏览器, Python Server; macOS, Linux, Windows
caffe自带的画图工具
非常易用 仅支持网页版
基于Netscope二次开发 给出网络的各种计算操作次数(非常方便!)
其子工具提供了模型可视化的功能
其子工具提供了模型可视化的功能
Github 地址:
https://github.com/alexlenail/NN-SVG 画图工具体验地址:
http://alexlenail.me/NN-SVG/
Github 地址:
https://lutzroeder.github.io/netron/
import sys sys.path.append('../') from core.tikzeng import *from core.blocks import * arch = [ to_head('..'), to_cor(), to_begin(), #input to_input( '../examples/fcn8s/cats.jpg' ), #block-001 to_ConvConvRelu( name='ccr_b1', s_filer=500, n_filer=(64,64), offset="(0,0,0)", to="(0,0,0)", width=(2,2), height=40, depth=40 ), to_Pool(name="pool_b1", offset="(0,0,0)", to="(ccr_b1-east)", width=1, height=32, depth=32, opacity=0.5), *block_2ConvPool( name='b2', botton='pool_b1', top='pool_b2', s_filer=256, n_filer=128, offset="(1,0,0)", size=(32,32,3.5), opacity=0.5 ), *block_2ConvPool( name='b3', botton='pool_b2', top='pool_b3', s_filer=128, n_filer=256, offset="(1,0,0)", size=(25,25,4.5), opacity=0.5 ), *block_2ConvPool( name='b4', botton='pool_b3', top='pool_b4', s_filer=64, n_filer=512, offset="(1,0,0)", size=(16,16,5.5), opacity=0.5 ), #Bottleneck #block-005 to_ConvConvRelu( name='ccr_b5', s_filer=32, n_filer=(1024,1024), offset="(2,0,0)", to="(pool_b4-east)", width=(8,8), height=8, depth=8, caption="Bottleneck" ), to_connection( "pool_b4", "ccr_b5"), #Decoder *block_Unconv( name="b6", botton="ccr_b5", top='end_b6', s_filer=64, n_filer=512, offset="(2.1,0,0)", size=(16,16,5.0), opacity=0.5 ), to_skip( of='ccr_b4', to='ccr_res_b6', pos=1.25), *block_Unconv( name="b7", botton="end_b6", top='end_b7', s_filer=128, n_filer=256, offset="(2.1,0,0)", size=(25,25,4.5), opacity=0.5 ), to_skip( of='ccr_b3', to='ccr_res_b7', pos=1.25), *block_Unconv( name="b8", botton="end_b7", top='end_b8', s_filer=256, n_filer=128, offset="(2.1,0,0)", size=(32,32,3.5), opacity=0.5 ), to_skip( of='ccr_b2', to='ccr_res_b8', pos=1.25), *block_Unconv( name="b9", botton="end_b8", top='end_b9', s_filer=512, n_filer=64, offset="(2.1,0,0)", size=(40,40,2.5), opacity=0.5 ), to_skip( of='ccr_b1', to='ccr_res_b9', pos=1.25), to_ConvSoftMax( name="soft1", s_filer=512, offset="(0.75,0,0)", to="(end_b9-east)", width=1, height=40, depth=40, caption="SOFT" ), to_connection( "end_b9", "soft1"), to_end() ] def main(): namefile = str(sys.argv[0]).split('.')[0] to_generate(arch, namefile + '.tex' ) if __name__ == '__main__': main()
Github 地址:
https://lutzroeder.github.io/netron/ 画图工具体验地址:
https://www.lutzroeder.com/ai/netron/
在使用方面,你可以直接访问网页端,上传模型文件,就可以看到网络结构图,并可以进一步利用pip安装并引入到程序中通过浏览器查看模型的变化。
如果你想追求个性化设置,可以在Github上下载源码修改相应的设置。如端口后的修改可以在src/__init__.py中修改,字体颜色可以在src/view-grapher.css中修改。效果如下图所示: