darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重...

深度学习开源框架众多,对于开发者来说其中有一个很硬的需求,就是模型结构和权重的可视化。使用过Caffe的同学都因为强大的Netscope可以离线修改实时可视化网络结构而暗爽,那其他的框架怎么样呢?

今天给大家介绍一个可以离线可视化各大深度学习开源框架模型结构和权重的项目,netron

作者&编辑 | 言有三

1 项目介绍

项目开发者Lutz Roeder,一位来自于微软Visual Studio团队的小哥,按照他自己的介绍,就是在家搞点AI tools玩玩。

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第1张图片

这是过去一年的contributions,基本就没有停过,这是真正硬核的开源贡献者呀,个人主页https://www.lutzroeder.com/ai,有兴趣可以去瞧瞧。

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第2张图片

Netron是他开源的深度学习模型可视化工具,项目地址为:

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第3张图片

https://github.com/lutzroeder/netron

目前支持哪些框架呢?

  • ONNX (.onnx, .pb, .pbtxt)

  • Keras (.h5, .keras)

  • Core ML (.mlmodel)

  • Caffe (.caffemodel, .prototxt)

  • Caffe2 (predict_net.pb, predict_net.pbtxt)

  • MXNet (.model, -symbol.json)

  • TorchScript (.pt, .pth)

  • NCNN (.param)

  • TensorFlow Lite (.tflite)

  • PyTorch (.pt, .pth)

  • Torch (.t7)

  • CNTK (.model, .cntk)

  • Deeplearning4j(.zip)

  • PaddlePaddle (.zip, __model__)

  • Darknet (.cfg)

  • scikit-learn (.pkl)

  • TensorFlow.js (model.json, .pb)

  • TensorFlow (.pb, .meta, .pbtxt).

共18个框架,除了chainer,matconvnet等框架基本上把数得上名字的框架一网打尽,下面是ONNX的可视化界面,很visual studio的感觉。

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第4张图片

另一方面,小哥哥也是非常的贴心,提供了各大平台的安装包!macOS的.dmg,Linux的.deb,Windows的.exe,还有浏览器版本,Python服务器版本,真是good man,小白们再也不用担心环境配置问题。

2 可视化实验

下面我们就来尝试几个框架的可视化结果,首先要祭出有三AI开源的12大深度学习开源框架的项目,从模型和数据接口定义,到训练测试可视化,提供了全套代码,地址如下:

https://github.com/longpeng2008/yousan.ai

具体的教程大家可以跳转阅读原文。

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第5张图片

这12个框架我们都使用一个3层的卷积模型来完成一个图像分类问题,下面挑选其中几个常用的来体验可视化效果。

2.1 Caffe

Caffe模型可视化的输入可以是prototxt文件和caffemodel文件。下面首先分别可视化训练网络和测试网络train.prototxt和deploy.prototxt,结果如下:

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第6张图片

比起Netscope,是不是效果也不遑多让。如果想要查看某一个网络层的细节,就可以点击该网络层,结果如下,所有网络配置参数细节皆可见,完美!

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第7张图片

这就是全部了吗?当然不,你还可以直接载入.caffemodel权重文件,直接查看每一个网络层的权重!

老司机们可以从中简单统计权重的分布,还可以一键导出参数为npy文件,看到那个保存小按钮没有,这就是细节,不得不再次给小哥哥点赞

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第8张图片

2.2 keras

keras的可视化输入是json格式的模型文件,可以通过model.to_json()将模型存储下来,然后载入.json文件。

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第9张图片

如果想查看权重,就载入.h5文件,结果如下,虽然没有caffe的那么漂亮,也是很直观的,不过权重参数矩阵顺序不太一样。

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第10张图片

2.3 tensorflow

要想可视化tensorflow的模型结构,就必须将模型存储为pb格式,这样就能同时保存网络结构和参数了,结果如下。

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第11张图片

2.4 pytorch

pytorch的网络结构可视化不支持,不过可以像keras一样查看pt权重文件。如果想可视化网络结构,可以使用yousan.ai项目中pytorch目录下的visualize.py脚本。

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第12张图片

2.5 Mxnet

Mxnet通过symbol接口定义网络,网络结构一般存在后缀为symbol.json的文件中,因此载入该文件即可进行可视化。权重的可视化原理类似,就不做赘述。

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第13张图片

2.6 Darknet

DarkNet的网络结构定义在cfg文件中,载入该cfg文件即可进行可视化。

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第14张图片

其他开源框架的案例,大家可以去下载我们的开源框架项目进行尝试,感谢小哥作出的贡献!

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第15张图片

另外再安利一下我们之前的讲述如何绘制更好看的网络结构的文章,一起享用,保证更香。

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第16张图片

总结

平时多留意一些好的工具,可以大大提升我们的学习效率,养成好的学习习惯,欢迎大家给我们推荐好的工具,在有三AI知识星球社区也可以一起分享。

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第17张图片

有三AI夏季划

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第18张图片

有三AI夏季划进行中,欢迎了解并加入,系统性成长为中级CV算法工程师。

转载文章请后台联系

侵权必究

darknet框架 VS2017 平台工具集141_【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重..._第19张图片 4a1649937bbe90e9d654caf8d75e084f.png 4a1649937bbe90e9d654caf8d75e084f.png

往期精选

  • 【完结】优秀的深度学习从业者都有哪些优秀的习惯

  • 【杂谈】如何学会看arxiv.org才能不错过自己研究领域的最新论文?

  • 【杂谈】那些酷炫的深度学习网络图怎么画出来的?

  • 【杂谈】深度学习必备,各路免费爬虫一举拿下

  • 【杂谈】从GitHub上星星最多的男人开始发GitHub综述资料

  • 【杂谈】提升写代码效率不得不做的三件事

  • 【杂谈】想成为机器学习学霸?先学会做笔记吧

  • 【杂谈】天下苦公众号久矣,如何利用这几类公众号进行深度学习?

  • 【杂谈】扒一扒Reddit,Medium,Quora与知乎等国内外高质量AI社区与内容平台

  • 【杂谈】菜鸟误入linux会有哪些惨痛的经历

  • 【杂谈】AI工业界都有哪些值得参加的比赛?

  • 【杂谈】如何应对烦人的开源库版本依赖-做一个心平气和的程序员?

  • 【杂谈】手把手带你配置深度学习环境

  • 【杂谈】为何有三AI只做原创,从不转载

  • 【杂谈】为什么有三AI自断财路,从来不接广告

  • 【杂谈】什么是我心目中深度学习算法工程师的标准

  • 【杂谈】白身,初识,不惑,有识,不可知,你处于深度学习工程师哪一重境界了

你可能感兴趣的:(darknet框架,VS2017,平台工具集141,tensorflow,模型可视化)