当前位置:首页 » 《我的小黑屋》 » 正文

【神经网络绘制工具】PlotNeuralNet详解

4 人参与  2024年04月10日 13:10  分类 : 《我的小黑屋》  评论

点击全文阅读


一、PlotNeuralNet简介

1. Introduction

PlotNeuralNet库是用于绘制神经网络的工具库,其绘制的神经网络较为干净整洁,比较适合用于科研论文写作等工作中,在此笔者整理了有关该库的使用方法,希望更多朋友能够借助这个库绘制出更多优美的神经网络。

以下是一些通过该库的代码绘制的Neural Netowrk Figures:

F C N − 8 FCN-8 FCN−8

F C N − 32 FCN-32 FCN−32

H o l i s t i c a l l y − N e s t e d E d g e D e t e c t i o n Holistically-Nested Edge Detection Holistically−NestedEdgeDetection

2. PlotNeuralNet组成和原理

2.1 代码组成

该仓库的代码借助三种语言进行绘制:

python 用于进行设计您自己的神经网络,作为主要的组织脚本文件shell 用于组织python和latex的运行,作为中间件。(在Linux系统上较为常见和通用)LaTex 用于绘制神经网络,通过python进行调用

2.2 运行原理

项目通过python调用latex代码进行绘制,这里可以给出一份简短的例子了解工作原理:

# Convdef to_Conv( name, s_filer=256, n_filer=64, offset="(0,0,0)", to="(0,0,0)", width=1, height=40, depth=40, caption=" " ):    return r"""\pic[shift={"""+ offset +"""}] at """+ to +"""     {Box={        name=""" + name +""",        caption="""+ caption +r""",        xlabel={{"""+ str(n_filer) +""", }},        zlabel="""+ str(s_filer) +""",        fill=\ConvColor,        height="""+ str(height) +""",        width="""+ str(width) +""",        depth="""+ str(depth) +"""        }    };"""

p y c o r e . t i k z e n g . p y pycore.tikzeng.py pycore.tikzeng.py

其实从这里就可以看出,通过设定函数参数、返回一个latex的字符串,相当于调用了latex进行绘制。(最后有进行组织绘制的代码)

2.3 Linux友好,Windows有一定问题

不过,值得注意的是,原仓库设计是针对Linux用户的解决方案,在Ubuntu系统下能够顺利运行,在Windows系统上运行的时候,可能存在一定问题。

因此笔者本人对该仓库进行了fork并且做出一定修改,使其能够在windows系统上运行。

3. forked Github Repository

源仓库是面向Linux系统的神经网络可视化工具,在windows上运行可能会有一定的错误信息。

下面是笔者修改过后的代码仓库地址:(fork自原仓库)

SamuraiBUPT: PlotNeuralNet-Windows

当然,您也可以直接去到原仓库进行浏览:

HarisIqbal88: PlotNeuralNet

二、快速开始-Windows

下面是针对windows用户的启动方案。

1. 前置设置

确保您的电脑上安装了LaTex。官方仓库推荐安装 MikTeX ,不过本人仅仅安装了texlive就可以正常运行~确保您的Windows操作系统具有运行Shell脚本的环境。推荐使用Git bash 或者 Cygwin

2. 克隆本仓库

您可以使用 git clone https://github.com/SamuraiBUPT/PlotNeuralNet-Windows.git 来完成仓库的克隆操作。

3. 跟随以下示例了解如何运行~

将克隆后的项目文件夹用IDE打开启用bash环境(如果您已经有Git Bash,并且配置好了环境变量,您可以直接在终端输入bash 或者sh 进入shell脚本的运行环境。您会看见终端前方的指示符从windows系统的黑白变成了其他颜色。进入pyexamples路径,(cd pyexamples/)输入bash ../tikzmake.sh test_simple 命令来查看您的第一份神经网络图的绘制结果。

4. 对 bash ../tikzmake.sh test_simple 的解释

如您所见,当您在pyexamples路径下创建好自己的python脚本后,仅需要在该路径下调用上一层路径的tikzmake.sh脚本来运行即可。

bash指令是在指定Shell脚本的编译器../tikzmake.sh是在指定:执行上一层目录下的tikzmake.sh脚本test_simple是当前路径下的一份python文件的文件名,注意不需要加上.py的后缀!。在这里,这个文件名会作为shell脚本的参数传入,决定了shell脚本执行的目标是哪份文件。

三、用法

了解如何上手该项目代码后,我们可以开始着手绘制自己的神经网络:

常规的初始化

一份常规的组织神经网络的python代码,应该有如下骨架

import syssys.path.append('../')from pycore.tikzeng import *# defined your archarch = [    to_head('..'),    to_cor(),    to_begin(),    # your architecture here...    # ...    # ...    # ...    to_end()]def main():    namefile = str(sys.argv[0]).split('.')[0]    to_generate(arch, namefile + '.tex')if __name__ == '__main__':    main()

如您所见,其实唯一需要您进行改动的,是arch 列表里面的内容,在to_begin()to_end() 函数之间的部分,在该部分进行您自己的神经网络设计。

四、函数描述

有关函数的描述您可以参阅这篇博客,实在是非常详细!

笔者也会在后续更新有关函数的API文档~


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/93196.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 祖母寿宴,侯府冒牌嫡女被打脸了(沈屿安秦秀婉)阅读 -
  • 《雕花锦年,昭都旧梦》(裴辞鹤昭都)完结版小说全文免费阅读_最新热门小说《雕花锦年,昭都旧梦》(裴辞鹤昭都) -
  • 郊区41号(许洛竹王云云)完整版免费阅读_最新全本小说郊区41号(许洛竹王云云) -
  • 负我情深几许(白诗茵陆司宴)完结版小说阅读_最热门小说排行榜负我情深几许白诗茵陆司宴 -
  • 九胞胎孕妇赖上我萱萱蓉蓉免费阅读全文_免费小说在线看九胞胎孕妇赖上我萱萱蓉蓉 -
  • 为保白月光,侯爷拿我抵了债(谢景安花田)小说完结版_完结版小说全文免费阅读为保白月光,侯爷拿我抵了债谢景安花田 -
  • 陆望程映川上官硕《我的阿爹是带攻略系统的替身》最新章节阅读_(我的阿爹是带攻略系统的替身)全章节免费在线阅读陆望程映川上官硕
  • 郑雅琴魏旭明免费阅读_郑雅琴魏旭明小说全文阅读笔趣阁
  • 头条热门小说《乔书意贺宴临(乔书意贺宴临)》乔书意贺宴临(全集完整小说大结局)全文阅读笔趣阁
  • 完结好看小说跨年夜,老婆初恋送儿子故意出车祸_沈月柔林瀚枫完结的小说免费阅读推荐
  • 热推《郑雅琴魏旭明》郑雅琴魏旭明~小说全文阅读~完本【已完结】笔趣阁
  • 《你的遗憾与我无关》宋怀川冯洛洛无弹窗小说免费阅读_免费小说大全《你的遗憾与我无关》宋怀川冯洛洛 -

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1