人工神经网络的结构图怎样画呢,可以用脚本自动生成吗

比较小的图我用Visio画,比较大的我也用GraphViz。
■网友
colab 共享了一个关于这个库的 notebook tutorial
https://drive.google.com/file/d/1mP9DOoTR4JEhd-ILVXfggpBJOyGatiws/view?usp=sharing打不开的话, 可以直接下载https://raw.githubusercontent.com/GiggleLiu/viznet/master/docs/viznet_basic.ipynb
============= 以上更新于2018年4月30日 =============
我写了一个基于matplotlib的python画神经网络图的库viznet。先上效果图:
人工神经网络的结构图怎样画呢,可以用脚本自动生成吗

定义了一套简单实用的“笔刷规则”。
node1 \u0026gt;\u0026gt; (0, 1.2) # 以坐标 (0, 1.2) 为中心绘制节点。node2 \u0026gt;\u0026gt; (2, 0) # 以坐标 (2, 0) 为中心绘制节点。edge \u0026gt;\u0026gt; (node1, node2) # 以直线连接两个节点。 【人工神经网络的结构图怎样画呢,可以用脚本自动生成吗】 比如“节点”的笔刷可以定义为node1 = NodeBrush(\u0026#39;nn.input\u0026#39;, ax=d.ax, size=\u0026#39;normal\u0026#39;) 。
第一个参数定义了风格。对于神经网络节点,它的风格 (以\u0026#39;nn.\u0026#39;开头的风格)参考于 Neural Network Zoo Page。
人工神经网络的结构图怎样画呢,可以用脚本自动生成吗


再比如“边”的笔刷可以定义为edge = EdgeBrush(\u0026#39;-\u0026gt;-\u0026#39;, ax=d.ax, lw=2) 。
第一个参数定义了风格,\u0026#39;-\u0026#39;为直线,\u0026#39;.\u0026#39;为虚线,\u0026#39;=\u0026#39;为双线,\u0026#39;\u0026gt;,\u0026lt;\u0026#39;为左右箭头。\u0026#39;-\u0026#39;,\u0026#39;.\u0026#39;和\u0026#39;=\u0026#39;的比例决定了各线段的长度的比重,而箭头不占比例。比如\u0026#39;-\u0026gt;\u0026#39;,\u0026#39;-\u0026gt;-\u0026#39;分别代表一条直线的末端和中间带个向右的箭头。以下是一些样品:
人工神经网络的结构图怎样画呢,可以用脚本自动生成吗

当然,光有上述还不够,连边连的爽才是核心,所以除了基础的连接法则,还有一套为Node建立Pin点的规则,这里不作详细介绍。这些规则使得它广泛的支持神经网络之外的量子线路,张量网络等绘图。唯一的缺点也许是没有曲线连接,但直男的网络要什么曲线连接。
项目仍然在0.1版本,但基本套路已经定下来了,还会持续更新和维护更多特性。
这是Github工程地址:https://github.com/GiggleLiu/viznet,欢迎PR!

■网友
太复杂或者有特别的要求就自己画吧,比如用Perl调Cairo。补充:可以用GraphViz
■网友
matplotlib大概就是跟画一个graph差不多吧,此处为DAG(有向无环图)


    推荐阅读