svg图片怎么使用画出神经⽹络结构图学习资料:
latex ⾃带 Tikz 画图包 .
基于 Matplotlib 的
在线⽣成卷积⽹络结构图:
使⽤ Viznet
1
2'''
3
4'''
5
6import numpy as np
7from viznet import connecta2a, node_sequence, NodeBrush, EdgeBrush, DynamicShow
8
9
10def draw_feed_forward(ax, num_node_list):
11'''
12draw a feed forward neural network.
13
14Args:
15num_node_list (list<int>): 每层节点数组成的列表
16'''
17num_hidden_layer = len(num_node_list) - 2 # 隐藏层数
18token_list = ['\sigma^z'] + \
19['y^{(%s)}' % (i + 1) for i in range(num_hidden_layer)] + ['\psi']
20kind_list = ['nn.input'] + ['nn.hidden'] * num_hidden_layer + ['nn.output']
21radius_list = [0.3] + [0.2] * num_hidden_layer + [0.3] # 半径⼤⼩
22y_list = - 1.5 * np.arange(len(num_node_list)) # 每⼀层节点所在的位置的纵轴坐标,全取负值说明⽹络是⾃顶⽽下的
23
24seq_list = []
25for n, kind, radius, y in zip(num_node_list, kind_list, radius_list, y_list):
26b = NodeBrush(kind, ax)
27seq_list.append(node_sequence(b, n, center=(0, y)))
28
29eb = EdgeBrush('-->', ax)
30for st, et in zip(seq_list[:-1], seq_list[1:]):
31connecta2a(st, et, eb)
32#for i, layer_nodes in enumerate(seq_list):
33#[('$z_%i^{(%i)}$'%(j, i), 'center', fontsize=16) for j, node in enumerate(layer_nodes)]
34return seq_list
35
36
37def real_bp():
38with DynamicShow((6, 6), '_feed_forward.png') as d: # 隐藏坐标轴
39seq_list = draw_feed_forward(d.ax, num_node_list=[5, 4, 1])
40for i, layer_nodes in enumerate(seq_list):
('$z_{%i}^{(%i)}$'%(j, i), 'center', fontsize=16) for j, node in enumerate(layer_nodes)]
42
43
44if __name__ == '__main__':
45real_bp()
46
为了节省内存,最好将图⽚保存为.svg格式。
在线⽣成卷积⽹络结构图
这个操作起来⼗分简单,只需要输⼊如下卷积神经⽹络结构说明: 1# Some example
2
3input(28, 28, 1)
4conv(24, 24, 8)
5relu(24, 24, 8)
6pool(12, 12, 8)
7conv(10, 10, 16)
8relu(10, 10, 16)
9pool(4, 4, 16)
10fullyconn(1, 1, 10)
11softmax(1, 1, 10)
便可⽣成对应的⽹络结构,即:
可以参考我的博⽂:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论