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

这篇具有很好参考价值的文章主要介绍了【神经网络绘制工具】PlotNeuralNet详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、PlotNeuralNet简介

1. Introduction

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

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

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

F C N − 8 FCN-8 FCN8

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

F C N − 32 FCN-32 FCN32

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

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 HolisticallyNestedEdgeDetection

2. PlotNeuralNet组成和原理

2.1 代码组成

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

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

2.2 运行原理

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

# Conv
def 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 sys

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

# defined your arch
arch = [
    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文档~文章来源地址https://www.toymoban.com/news/detail-505983.html

到了这里,关于【神经网络绘制工具】PlotNeuralNet详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 卷积神经网络详解

    一个卷积神经网络里包括5部分——输入层、若干个卷积操作和池化层结合的部分、全局平均池化层、输出层: ● 输入层:将每个像素代表一个特征节点输入进来。 ● 卷积操作部分:由多个滤波器组合的卷积层。 ● 池化层:将卷积结果降维。 ● 全局平均池化层:对生成的

    2024年02月06日
    浏览(36)
  • 神经网络分类算法原理详解

    目录 神经网络分类算法原理详解 神经网络工作流程 反向传播算法 1) 反向传播原理

    2024年02月12日
    浏览(45)
  • pytorch工具——使用pytorch构建一个神经网络

    注意

    2024年02月16日
    浏览(37)
  • NNLM - 神经网络语言模型 | 高效的单词预测工具

    本系列将持续更新NLP相关模型与方法,欢迎关注! 神经网络语言模型(NNLM)是一种人工智能模型,用于学习预测词序列中下一个词的概率分布。它是自然语言处理(NLP)中的一个强大工具,在机器翻译、语音识别和文本生成等领域都有广泛的应用。 Paper - A Neural Probabilistic

    2024年02月19日
    浏览(43)
  • PyTorch实战:卷积神经网络详解+Python实现卷积神经网络Cifar10彩色图片分类

    目录 前言 一、卷积神经网络概述 二、卷积神经网络特点 卷积运算 单通道,二维卷积运算示例 单通道,二维,带偏置的卷积示例 带填充的单通道,二维卷积运算示例 Valid卷积 Same卷积 多通道卷积计算 1.局部感知域 2.参数共享 3.池化层 4.层次化提取  三、卷积网络组成结构

    2024年02月07日
    浏览(54)
  • 如何看待第三代神经网络SNN?详解脉冲神经网络的架构原理、数据集和训练方法

    作者丨科技猛兽 编辑丨极市平台 本文首发于极市平台公众号,转载请获得授权并标明出处。 1 脉冲神经网络简介 2 脉冲神经网络原理 3 脉冲神经网络数据集 4 脉冲神经网络训练方法 5 脉冲神经网络评价指标 脉冲神经网络 (SNN) 属于 第三代神经网络模型 ,实现了更高级的生物

    2024年02月08日
    浏览(61)
  • CNN(卷积神经网络)的实现过程详解

        在图像处理领域,CNN(卷积神经网络)处于绝对统治地位,但对于CNN具体是如何用神经网络实现的,能找到的介绍要么是一大堆数学公式,要么是大段晦涩的文字说明,读起来很是辛苦,想写好一片完整的而且有深度的文章出来非常难,所以本文适合入门的朋友对CNN的学习

    2024年02月15日
    浏览(37)
  • 循环神经网络-单变量序列预测详解(pytorch)

    参考博客 (1)导入所需要的包 (2)读取数据并展示 (3)数据预处理 缺失值,转化成numpy.ndarray类型,转化成float类型,归一化处理 (4)划分训练集和测试集 用30个预测一个 1-30:31 2-31:32 … 94-143:144 需要注意 a = [dataset[i: (i + look_back)]] ,而不是 a = dataset[i: (i + look_back)] 对于

    2024年01月17日
    浏览(58)
  • 深度学习卷积神经网络YOLOv5详解

    Yolov5官方代码中,给出的目标检测网络中一共有4个版本,分别是 Yolov5s、Yolov5m、Yolov5l、Yolov5x 四个模型。 学习一个新的算法,最好在脑海中对 算法网络的整体架构 有一个清晰的理解。 但比较尴尬的是, Yolov5代码 中给出的网络文件是 yaml格式 ,和原本Yolov3、Yolov4中的 cfg 不

    2024年02月04日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包