PlotNeuralNet绘制神经网络框图使用笔记

最近写文章需要绘制神经网络方面的系统框图,浏览一大圈还是觉得PlotNeuralNet画出来的图形更好看,但是网上的资料都是怎么安装或者简介一些函数使用,个人感觉对想画的好看的同学不太友好,于是就自己写一篇博客来分享一下自己的笔记。

由于我的重点不是安装,所以没有安装的同学可以移步下面这篇博客去跟着教程安装下载。我个人觉得就下载一个PlotNeuralNet和Latex编辑器texstudio就可以。当然大家根据情况来选择安装git、mixtex吧。

卷积神经网络工具PlotNeuralNet在Windows安装并使用_plotneuralnet怎么在window下运行_☆下山☆的博客-CSDN博客

然后下面是我自己学习中的使用教程以及笔记记录!!

一、框架及函数了解

安装好以后,用pycharm(或者你自己的python编译器)打开下载的plotneuralnet包。然后这个工程包下面的pyexamples里面有两个示例文件:unet.py和test_simple.py。

我用unet给大家介绍一下框架和使用方法

开头是一些引用库啥的,不需要去了解,后续自己写文件的时候把这一堆直接copy就好。

然后下面代码的框架是arch、main函数以及main执行

我们需要关注的就是arch还有main函数定义。

(虽然感觉有点呆,但是假如有编程基础不好的)所以我还是先说一下main定义中有一个namefile以及to_generate,这两句我们能关注到的作用就是生成的文件名字是同我们这个py文件一样的名称但是后缀为.tex。而这个文件可以用texstudio或者emmm其他博主的方式打开编译成pdf文件,pdf文件我们就可以查看我们的网络框图。

然后就是arch,也是我们主要会自己写的地方,我们先看看unet.py的内容吧

arch = [ 
    to_head('..'), 
    to_cor(),
    to_begin(),
    .....
    .....
    to_end() 
    ]

省略号表示需要我们添加的各种层。to_head、to_cor不用管,具体使用方法有知道的可以评论补充一下~(因为我也没查到资料~影响不大)。然后to_begin和to_end之间可以填充不同的网络层。

比如在画一个识别图像或者其他的图片等网络,那我们的模型开头就可以放一张示例一张图片,那我们就可以用to_input()函数;要添加卷积层可以用to_Conv()函数;如果想把两个层之间通过箭头连接起来,可以用to_connection()函数;如果是非相邻层之间的连接,可以用to_skip()函数;这几个函数的使用大家可以去看这篇博客:
使用PlotNeuralNet绘制深度学习网络图_Zhanglw882的博客-CSDN博客

(声明)这里为了方便我自己看,我简单copy一下上面这位作者的博客内容便于我自己查看

1、to_input(pathfile,to='(-3,0,0)', width=8, height=8, name="temp")
# pathfile--输入图片的路径,
# to="(-3,0,0)"--输入图片的坐标(x,y,z),
# width=16,height=16--图片显示时的宽和高,根据需要自己调节
# name--指名称

2、to_Conv(name,s_filer=256,n_filer=64,offset="(0,0,0)",to="(0,0,0)",width=1,height=40, depth=40, caption=" ")
# name--名称
# s_filer--卷积层图像尺寸
# n_filer--卷积层图像深度(通道数)
# s_filer、n_filer指卷积层结构的参数,并非制图时的尺寸
# offset--与前一层分别在x,y,z方向的距离
# to--在x,y,z方向的坐标,
# offset、to的在后面会深入讲,你可以自己该不同的值试验一下,找规律
# width--制图时的厚度
# height、depth--制图时的长宽
# width、height、depth指在制图时,卷积层的尺寸
# caption--备注信息

一层淡黄色的

3、to_Pool(name,offset="(0,0,0)",to="(0,0,0)",width=1,height=32,depth=32,opacity=0.5,caption=" ")
# 部分参数与卷积层相同
# opacity--透明度,0-1之间
# to="(conv1-east)"--在con1层的东侧

一层深橘色的

4、to_connection("起始层", "终止层"),
to_skip(of = "起始位置",to = "终止位置",pos=参数值),

5、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_conv()贴在一起的效果并且加了一个relu层的效果

深橘色就是池化层的效果

6、*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 ),

这个画出来的效果同to_ConvConvRelu()加一个to_pool()一样,只是更方便而已

7、*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 ),

这个是一个蓝黄配色的层

8、to_ConvSoftMax( name="soft1", s_filer=512, offset="(0.75,0,0)", to="(end_b9-east)", width=1, height=40, depth=40, caption="SOFT" ),

这个是一个粉色的层

9、to_SoftMax("soft1", 10 ,"(3,0,0)", "(pool1-east)", caption="SOFT" ),

一层紫色的层

10、to_Sum("sum1", offset="(1.5,0,0)", to="(soft1-east)", radius=2.5, opacity=0.6),

一个绿色的求和圈

11、to_UnPool("unpol1", offset="(0,0,0)", to="(sum1-east)", width=1, height=32, depth=32, opacity=0.5, caption=" "),

也是蓝色的层

12、to_ConvRes( "ConvRes", s_filer=256, n_filer=64, offset="(1.5,0,0)", to="(unpol1-east)", width=6, height=40, depth=40, opacity=0.2, caption=" " ),

这是一个灰白配色的层

我个人觉得不一定限制于他所规定的函数名称对应的层,可以根据颜色来构造自己的框架。

写这篇博客的目的就是记录库中所有函数的绘制效果,方便我们自己来选择绘制好看的框图。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
PlotNeuralNet是一个用于绘制卷积神经网络Python库。通过使用该库,您可以轻松地创建漂亮的卷积神经网络结构图。您可以使用PlotNeuralNet的API来定义网络的每个层次和连接。具体步骤如下: 1. 首先,安装PlotNeuralNet库。您可以在中找到面向PythonPlotNeuralNet教程,其中提供了详细的安装说明和使用示例。 2. 导入PlotNeuralNet库并创建一个新的网络图对象。 3. 使用API定义网络的每个层次。您可以使用PlotNeuralNet提供的各种函数来添加卷积层、池化层、全连接层等。根据您的网络结构和需求,您可以自由地调整每个层次的参数。 4. 使用API定义网络的连接。您可以使用PlotNeuralNet提供的函数来定义网络中每个层次之间的连接关系。您可以指定连接的输入和输出层次以及连接的类型(如卷积连接、池化连接等)。 5. 最后,使用API绘制网络图。您可以使用PlotNeuralNet提供的函数将网络图绘制为图像文件或在Jupyter Notebook中显示。 具体的使用示例可以在和中找到。这些示例提供了使用PlotNeuralNet绘制卷积神经网络的代码和详细说明。 综上所述,您可以使用PlotNeuralNet库的API来绘制卷积神经网络结构图。通过定义每个层次和连接,您可以创建自定义的网络图,并使用提供的函数将其绘制出来。 参考文献: 面向PythonPlotNeuralNet教程 使用PlotNeuralNet绘制深度学习网络图 【论文作图】使用PlotNeuralNet绘制卷积神经网络——以VGG-F为例

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值