Caffe学习系列——工具篇:神经网络模型结构可视化

时间:2022-11-12 16:26:27

Caffe学习系列——工具篇:神经网络模型结构可视化

在Caffe中,目前有两种可视化prototxt格式网络结构的方法:

  • 使用Netscope在线可视化
  • 使用Caffe提供的draw_net.py

本文将就这两种方法加以介绍

1. Netscope:支持Caffe的神经网络结构在线可视化工具

  Netscope是个支持prototxt格式描述的神经网络结构的在线可视工具,网址: 
  http://ethereon.github.io/netscope/quickstart.html 
  它可以用来可视化Caffe结构里prototxt格式的网络结构,支持从GitHub Gist或者编辑器中可视化Caffe的网络结构。 
  使用起来也非常简单,打开这个地址:http://ethereon.github.io/netscope/#/editor

  点击Launch Editor,把你的描述神经网络结构的prototxt文件复制到该编辑框里,按shift+enter,就可以直接以图形方式显示网络的结构。 
  比如,以mnist的LeNet网络结构为例,把Caffe中example/mnist/lenet_train_test.prototxt文件的内容复制到编译框,按shift + enter,立即就可以得到可视化的结构图。 
      Caffe学习系列——工具篇:神经网络模型结构可视化

2. 使用 python/draw_net.py绘制网络模型

  Python/draw_net.py, 这个文件,就是用来绘制网络模型的。也就是将网络模型由prototxt变成一张图片。 
  在绘制之前,需要先安装两个库:GraphViz和pydot。 Graphviz是一个开源的可视化软件,能够以抽象的图和网络表示结构信息,广泛使用于网络,生物信息学,软件工程等领域。

   
  1、安装GraphViz 
  # sudo apt-get install GraphViz 
  注意,这里用的是apt-get来安装,而不是pip. 
  2 、安装pydot 
  # sudo pip install pydot 
  用的是pip来安装,而不是apt-get

  安装好了,就可以调用脚本来绘制图片了

  draw_net.py执行的时候带三个参数

>

第一个参数:网络模型的prototxt文件 
第二个参数:保存的图片路径及名字 
第二个参数:–rankdir=x , x 有四种选项,分别是LR, RL, TB, BT 。用来表示网络的方向,分别是从左到右,从右到左,从上到小,从下到上。默认为LR。

例:绘制Lenet模型

# sudo python python/draw_net.py examples/mnist/lenet_train_test.prototxt netImage/lenet.png --rankdir=TB
  • 1
  • 1

      Caffe学习系列——工具篇:神经网络模型结构可视化

3. 总结

   使用Netscope绘制出的图直观简洁,易于快速了解网络模型,但是缺少层内的细节信息; 
  使用draw_net.py绘制出的结构图保存了参数信息,细节更丰富,但是结构不是很清晰明了,这一点在大型模型上的体现尤为明显: 
  Netscope SSD 300x300模型 
  Caffe学习系列——工具篇:神经网络模型结构可视化

  draw_net.py SSD 300x300模型 
  Caffe学习系列——工具篇:神经网络模型结构可视化 
  如上图所示,对于复杂模型,Netscope能够较好地按安排各层图像的布局,使得SSD模型可视化结果更直观。缺点是博主没有找到本地化吧保存Netscope可视化结果的方法,在线查看大型模型不是很方便。 
  

4. Reference

[1] 10km. Netscope:支持Caffe的神经网络结构在线可视化工具 
http://blog.csdn.net/10km/article/details/52713027 
[2] denny的学习专栏. Caffe学习系列(18): 绘制网络模型 
http://www.cnblogs.com/denny402/p/5106764.html

Caffe学习系列——工具篇:神经网络模型结构可视化的更多相关文章

  1. Caffe学习系列(23):如何将别人训练好的model用到自己的数据上

    caffe团队用imagenet图片进行训练,迭代30多万次,训练出来一个model.这个model将图片分为1000类,应该是目前为止最好的图片分类model了. 假设我现在有一些自己的图片想进行分 ...

  2. Caffe学习系列(3):视觉层(Vision Layers)及参数

    所有的层都具有的参数,如name, type, bottom, top和transform_param请参看我的前一篇文章:Caffe学习系列(2):数据层及参数 本文只讲解视觉层(Vision La ...

  3. Caffe学习系列(21):caffe图形化操作工具digits的安装与运行

    经过前面一系列的学习,我们基本上学会了如何在linux下运行caffe程序,也学会了如何用python接口进行数据及参数的可视化. 如果还没有学会的,请自行细细阅读: caffe学习系列:http:/ ...

  4. Caffe学习系列(12):训练和测试自己的图片

    学习caffe的目的,不是简单的做几个练习,最终还是要用到自己的实际项目或科研中.因此,本文介绍一下,从自己的原始图片到lmdb数据,再到训练和测试模型的整个流程. 一.准备数据 有条件的同学,可以去 ...

  5. 转 Caffe学习系列(12):训练和测试自己的图片

    学习caffe的目的,不是简单的做几个练习,最终还是要用到自己的实际项目或科研中.因此,本文介绍一下,从自己的原始图片到lmdb数据,再到训练和测试模型的整个流程. 一.准备数据 有条件的同学,可以去 ...

  6. 转 Caffe学习系列(3):视觉层(Vision Layers)及参数

    所有的层都具有的参数,如name, type, bottom, top和transform_param请参看我的前一篇文章:Caffe学习系列(2):数据层及参数 本文只讲解视觉层(Vision La ...

  7. Caffe 学习系列

    学习列表: Google protocol buffer在windows下的编译 caffe windows 学习第一步:编译和安装(vs2012+win 64) caffe windows学习:第一 ...

  8. Caffe学习系列(12):训练和测试自己的图片--linux平台

    Caffe学习系列(12):训练和测试自己的图片   学习caffe的目的,不是简单的做几个练习,最终还是要用到自己的实际项目或科研中.因此,本文介绍一下,从自己的原始图片到lmdb数据,再到训练和测 ...

  9. Caffe学习系列(22):caffe图形化操作工具digits运行实例

    上接:Caffe学习系列(21):caffe图形化操作工具digits的安装与运行 经过前面的操作,我们就把数据准备好了. 一.训练一个model 右击右边Models模块的” Images&quot ...

随机推荐

  1. .net 分布式架构之配置中心

    开源QQ群: .net 开源基础服务  238543768 开源地址: http://git.oschina.net/chejiangyi/Dyd.BaseService.ConfigManager ...

  2. Android Token的使用学习

    学习Token Token是什么? Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Tok ...

  3. 用Wireshark简单分析HTTP通信

    我们都学过TCP,HTTP的相关概念,本文借助协议分析工具Wireshark,让大家对一些概念眼见为实,权当温故而知新. 场景: 在Client(10.239.196.211)上通过web brows ...

  4. HUDSON(Java开发的一种持续集成工具)

    Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. Hudson的特性 1.易于 ...

  5. Ubuntu 14.04 eclipse 提示框背景色更改

    首先查看系统设置->外观->主题. 不同的主题需要更改的文件不同 sudo vim /usr/share/themes/主题(就是刚才主题的名字,ubuntu14.04默认是Ambianc ...

  6. js第一天 innerHTML和value 的区别

    innerHTML在JS是双向功能:获取对象的内容 或 向对象插入内容:如:<div id="aa">这是内容</div> ,我们可以通过 document ...

  7. jieba库的使用和好玩的词云

    1.jieba库基本介绍 (1).jieba库概述 jieba是优秀的中文分词第三方库 - 中文文本需要通过分词获得单个的词语         - jieba是优秀的中文分词第三方库,需要额外安装 - ...

  8. 在html中引入css、js和jQuery的方法

    在html中引入css代码 在html中插入CSS样式表的方法有三种: 1.外部样式表(External style sheet):即所有的样式单独写在一个.css文件中,在html文件的head部分 ...

  9. centos7&period;5安装golang

    1.下载 [root@localhost bin]#wget https://dl.google.com/go/go1.10.2.linux-amd64.tar.gz [root@localhost ...

  10. Spring中的&commat;Transactional

    spring中的@Transactional基于动态代理的机制,提供了一种透明的事务管理机制,方便快捷解决在开发中碰到的问题. 一般使用是通过如下代码对方法或接口或类注释: @Transactiona ...