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

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

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

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

                                                                                              UNet结构图

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

                                                                                                     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”按钮,完成库更新操作,如下图所示:

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

这样就实现了Tikz的升级。

3.  使用测试

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

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

4.  定制化使用

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

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

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

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

import sys
sys.path.append('../')
from pycore.tikzeng import *

# defined your arch
arch = [
    to_head( '..' ),
    to_cor(),
    to_begin(),
    to_Conv("conv1", 512, 64, offset="(0,0,0)", to="(0,0,0)", height=64, depth=64, width=2 ),
    to_Pool("pool1", offset="(0,0,0)", to="(conv1-east)"),
    to_Conv("conv2", 128, 64, offset="(1,0,0)", to="(pool1-east)", height=32, depth=32, width=2 ),
    to_connection( "pool1", "conv2"), 
    to_Pool("pool2", offset="(0,0,0)", to="(conv2-east)", height=28, depth=28, width=1),
    to_SoftMax("soft1", 10 ,"(3,0,0)", "(pool1-east)", caption="SOFT"  ),
    to_connection("pool2", "soft1"),    
    to_end()
    ]

def main():
    namefile = str(sys.argv[0]).split('.')[0]
    to_generate(arch, namefile + '.tex' )

if __name__ == '__main__':
    main()

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

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

 

你可能感兴趣的:(单独的博客资料)