Mxnet学习系列3----网络的可视化
来源:互联网 发布:知乎怎么称呼别人 编辑:程序博客网 时间:2024/05/23 00:10
网络可视化的重要性不言而喻,我们可以利用图的形式更好的观察网络的结构。记得以前写过一篇关于Caffe下的网络的可视化的博客点击打开链接,其实有一个在线的Caffe网络结构工具:
http://ethereon.github.io/netscope/#/editor。
那么在Mxnet下怎么画出网络结构图呢?其实过程还是很简单的,因为Mxnet已经为我们写好了函数,我们只要简单调用即可。废话不说了,上代码:
import mxnet as mximport numpy as npimport cv2import matplotlib.pyplot as pltimport logging#启动日志logger = logging.getLogger()logger.setLevel(logging.DEBUG)#定义一个网络data = mx.symbol.Variable('data')fc1 = mx.symbol.FullyConnected(data=data,name='fc1',num_hidden=128)act1 = mx.symbol.Activation(data=fc1,name='relu1',act_type='relu')fc2 = mx.symbol.FullyConnected(data=act1,name='fc2',num_hidden=64)act2 = mx.symbol.Activation(data=fc2,name='relu2',act_type='relu')fc3 = mx.symbol.FullyConnected(data=act2,name='fc3',num_hidden=10)mlp = mx.symbol.SoftmaxOutput(data=fc3,name='softmax')#可视化网络mx.viz.plot_network(mlp).view()
要想画一个网络,首先当然要先声明一个网络,这个就不介绍了。重要的就是mx.viz.plot(mlp).view()这句代码了。执行完这句代码后会在当前文件夹下多出一个PDF文件,这个就是我们的网络结构图了。
友情提示:
1、mx.viz.plot_network(mlp).view(),必须要调用view()函数,否则无法得到正确结果
2、要确保你已经安装了graphviz和pydot,如果没有安装可以使用pip install进行安装
3、如果您遇到了下面的错误提示:"RuntimeError: failed to execute ['dot', '-Tpdf', '-O', 'test-output/round-table.gv'],make sure the Graphviz executables are on your systems' path"
是因为你没有将graphviz加入系统环境变量,我的解决方法是,我首先在windows下安装了
graphviz,注意不是用pip intall安装的python版本,然后将
D:\Program Files (x86)\Graphviz2.39\bin,加入系统环境变量。重新启动系统即可!
可参考:
http://stackoverflow.com/questions/28312534/graphvizs-executables-are-not-found-python-3-4
补充:
原来mx.viz.plot_network()函数里还有其他参数,下面分别贴出代码和效果图
batch_size = 100data_shape = (batch_size, 784)mx.viz.plot_network(softmax, shape={"data":data_shape}, node_attrs={"shape":'oval',"fixedsize":'false'})效果如左图
batch_size = 100data_shape = (batch_size, 784)mx.viz.plot_network(softmax)#没有shape参数了效果如右图
看出不同了吗?我觉得这应该和graphviz有关,shape参数可以在箭头上显示输出个数,
node_attrs参数可以设定节点的属性,比如节点形状等。
祝各位好运!
- Mxnet学习系列3----网络的可视化
- mxnet系列3-hello,mxnet
- Mxnet学习系列1----制作自己的数据
- Mxnet学习系列4----Caffe模型转换成Mxnet模型
- mxnet系列之 增加新的层
- mxnet系列 tools 查看params的内容
- mxnet系列之mxnet介绍
- MXNet学习
- mxnet学习
- Caffe学习系列:caffemodel可视化
- 深度学习 网络结构 可视化
- 深度学习网络模型可视化
- 机器学习----图与网络结构的可视化
- Mxnet学习系列0----问题汇总及解决方法
- Mxnet学习系列2----如何制作image.rec(新版本)
- mxnet系列之-mshadow
- mxnet系列 安装
- Mxnet学习笔记(3)--自定义Op
- C 程序的内存空间布局
- 学会阅读Java字节码
- JMP caLL 机器码
- 熵与生命 概率
- SpringBoot+Maven项目实战(6):整合Log4j和Aop,实现简单的日志记录
- Mxnet学习系列3----网络的可视化
- Struts2单文件上传
- mtk打印spi注册log
- php验证类
- Android Studio 基本设置与运行
- 内存中堆和栈
- 从一个标准 url 里取出文件的扩展名
- 实用工具函数
- jenkins 出现java.lang.OutOfMemoryError: PermGen space 解决办法