【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重

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

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

作者&编辑 | 言有三

1 项目介绍

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

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

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

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的感觉。

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

2 可视化实验

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

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

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

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

2.1 Caffe

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

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

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

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

2.2 keras

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

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

2.3 tensorflow

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

2.4 pytorch

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

2.5 Mxnet

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

2.6 Darknet

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

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

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

总结

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

有三AI夏季划

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

转载文章请后台联系

侵权必究

(0)

相关推荐

  • 机器学习之于IOT浅见

    为了更好地服务于目标客户, 嵌入式设计团队也在研究新技术, 如机器学习和深度学习. 深度学习允许这些设计师以有限的资源更快地开发和部署复杂的系统和设备. 通过这些技术, 设计团队可以使用数据驱动的方法 ...

  • 2021 年最受欢迎的深度学习软件

    本文提供了当今开发人员使用的最流行的深度学习软件工具列表.我们将展示人们在 2021 年使用哪些软件进行深度学习. 什么是深度学习? 深度学习是当今非常流行的机器学习方法,因此是 AI(人工智能)的一 ...

  • DL框架之Keras:深度学习框架Keras框架的简介、安装(Python库)、相关概念、Keras模型使用、使用方法之详细攻略

    DL框架之Keras:深度学习框架Keras框架的简介.安装(Python库).相关概念.Keras模型使用.使用方法之详细攻略相关文章DL框架之Keras:Python库之Keras库的简介.安装. ...

  • 10个最佳的人工智能开发框架和AI库

    编辑推荐: 本文主要讲解了10个人工智能开发框架和AI库分别是什么及优缺点. 本文来自于云+社区,由火龙果软件Anna编辑.推荐. 人工智能(AI)已经存在很长时间了.然而,由于这一领域的巨大进步,近 ...

  • 【杂谈】面向新手的深度学习开源框架指导手册与GitHub项目

    开源框架背景 现如今开源生态非常完善,深度学习相关的开源框架众多,光是为人熟知的就有caffe,tensorflow,pytorch/caffe2,keras,mxnet,paddldpaddle,t ...

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

    平时做开发时最烦人的除了项目不会做,恐怕就是环境依赖的问题了吧. 一个好好的项目,换个环境总是出问题,开源库一升级就挂掉,总有"坏人"搞掉自己的系统库,今天就来随便聊聊吧. 作者 ...

  • 顶级的18 款开源低代码开发平台

    让一部分开发者看到未来 文 | 白开水 出品 | OSC开源社区 低代码成了企追求的主流目标,与使用计算机编程语言构建应用程序的传统方法不同,低代码开发平台是使用图形向导来创建和构建软件的应用程序开发 ...

  • 15个最受欢迎的Python开源框架

    编辑推荐: 本文来源博客园,主要通过示例演示15个最受欢迎的Python开源框架,希望对您的学习有所帮助. 一.Django: Python Web应用开发框架 Django是一个开放源代码的Web应 ...

  • Python开源框架有哪些?这几个最常见!

    当我们学习python的时候,会遇到很多开源框架,这些框架可以实现很多事情,在不同岗位上都具有重要作用.面对python开源框架,你最中意哪一个呢? 1.Django: Python Web应用开发框 ...

  • .net core 基于Dapper 的分库分表开源框架(core-data)

    一.前言 感觉很久没写文章了,最近也比较忙,写的相对比较少,抽空分享基于Dapper 的分库分表开源框架core-data的强大功能,更好的提高开发过程中的效率: 在数据库的数据日积月累的积累下,业务 ...

  • 推荐15个最受欢迎的Python开源框架

    以下是伯乐在线从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python Web应用开发框 ...

  • 手把手教你构建WPF官方开源框架源代码

    今天 以下文章来源于WPF UI ,作者Gxy WPF UIWPF UI 设计,WPF教程,MVVM,C#程序设计~ 从去年微软就将 WPF 开源了,差不多现在所有 WPF 的源代码都开源了.在学习框 ...

  • 推荐15个最受欢迎的Python开源框架!

    Python程序员 6天前 以下是伯乐在线从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: P ...