当前位置:   article > 正文

使用latex画好看的深度学习模型图(基于Windows平台)

深度学习模型图

论文里需要画出简洁美观的深度学习模型图,如果采用PPT或者Visio一笔一笔画那么是一项非常耗时耗力的任务。想到现在深度学习这么火热,应该有相关的自动画图工具。在网上找了一些工具,最后确定了一款功能非常强大且作图非常美观的的工具——PlotNeuralNet。该软件下载地址为:https://github.com/HarisIqbal88/PlotNeuralNet

使用该软件可以作出一些非常美观的深度学习模型图,如下所示:

                                                                                              UNet结构图

                                                                                                     FCN8结构图

由于该软件需要配合latex,在windows平台下遇到了几个问题。下面将整个安装和使用过程进行介绍。

1. 安装CTex

为了能够使用latex进行作图,需要安装相关环境。在Windows下面比较方便的一种方法就是使用CTex,该软件已经附带相关的常用latex库 MiKTeX等。下载地址: http://www.ctex.org/CTeXDownload/        下载对应的稳定版即可。下载后根据提示进行安装。

2. 升级Tikz

一般情况下,安装的CTex安装包默认包含了画图相关的Tikz/PGF库,但是其版本都比较旧,需要更新一下才能使用PlotNeuralNet(这一点非常重要,否则下载下载下来的PlotNeuralNet是没有办法正常编译运行的)。Tikz下载网站:https://sourceforge.net/projects/pgf/files/?source=navbar

单击“download”即可下载。下载下来后解压该文件夹,其中包含三个子文件夹:doc、source、tex。将三个子文件夹复制到CTex安装目录下的MikTex文件夹下,完成覆盖替换。

文件替换完成后,打开WinEdit 7.0编辑器,依次单击菜单栏 “TeX”—“MikTeX”—“MikTeX Options”,在弹出的对话框中单击“Refresh FNDB”按钮,完成库更新操作,如下图所示:

这样就实现了Tikz的升级。

3.  使用测试

双击打开PlotNeuralNet下examples\Unet文件夹下的Unet.tex文件,在WinEdt 7.0编辑器中单击

完成编译和pdf生成。在当前目录下会生成对应的pdf图像文件。

4.  定制化使用

最后,看一下如何按照我们的实际需求来生成图像。主要分两个步骤。

(1)编写Python脚本用于生成tex文件

(2)编译并执行tex文件生成图像对应的pdf文件

PlotNeuralNet中已经提供了相关的使用案例。打开pyexamples文件夹,找到其中的test_simple.py文件,文件内容如下:

  1. import sys
  2. sys.path.append('../')
  3. from pycore.tikzeng import *
  4. # defined your arch
  5. arch = [
  6. to_head( '..' ),
  7. to_cor(),
  8. to_begin(),
  9. to_Conv("conv1", 512, 64, offset="(0,0,0)", to="(0,0,0)", height=64, depth=64, width=2 ),
  10. to_Pool("pool1", offset="(0,0,0)", to="(conv1-east)"),
  11. to_Conv("conv2", 128, 64, offset="(1,0,0)", to="(pool1-east)", height=32, depth=32, width=2 ),
  12. to_connection( "pool1", "conv2"),
  13. to_Pool("pool2", offset="(0,0,0)", to="(conv2-east)", height=28, depth=28, width=1),
  14. to_SoftMax("soft1", 10 ,"(3,0,0)", "(pool1-east)", caption="SOFT" ),
  15. to_connection("pool2", "soft1"),
  16. to_end()
  17. ]
  18. def main():
  19. namefile = str(sys.argv[0]).split('.')[0]
  20. to_generate(arch, namefile + '.tex' )
  21. if __name__ == '__main__':
  22. main()

上述文件定义了一个简单的网络结构,对照代码读者只需要依葫芦画瓢的添加结构就可以。完成以后运行该python脚本,正常运行后在本地会生成一个同名的tex文件。使用CTex打开该tex文件并按照步骤3中的方式编译并生成,在本地会生成对应的pdf文件,如下图所示:

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/238268?site
推荐阅读
相关标签
  

闽ICP备14008679号