一、Graphviz安装
sudo apt-get install graphviz
二、神经网络绘图
创建并编辑nn.dot,新增如下
digraph G {
rankdir = LR
splines = line
nodesep = .05
subgraph cluster_0 {
color = white;
node [style = solid, color = blue, shape = circle];
I1 I2 I3;
label = "input layer";
}
subgraph cluster_1 {
color = white;
node [style = solid, color = orange, shape = circle];
H11 H21 H31 H41 H51;
label = "hidden layer 1";
}
subgraph cluster_2 {
color = white;
node [style = solid, color = orange, shape = circle];
H12 H22 H32 H42 H52;
label = "hidden layer 2";
}
subgraph cluster_3 {
color = white;
node [style = solid, color = sienna, shape = circle];
O1 O2 O3 O4;
label = "output layer";
}
I1 -> H11
I1 -> H21
I1 -> H31
I1 -> H41
I1 -> H51
I2 -> H11
I2 -> H21
I2 -> H31
I2 -> H41
I2 -> H51
I3 -> H11
I3 -> H21
I3 -> H31
I3 -> H41
I3 -> H51
H11 -> H12
H21 -> H12
H31 -> H12
H41 -> H12
H51 -> H12
H11 -> H22
H21 -> H22
H31 -> H22
H41 -> H22
H51 -> H22
H11 -> H32
H21 -> H32
H31 -> H32
H41 -> H32
H51 -> H32
H11 -> H42
H21 -> H42
H31 -> H42
H41 -> H42
H51 -> H42
H11 -> H52
H21 -> H52
H31 -> H52
H41 -> H52
H51 -> H52
H12 -> O1
H22 -> O1
H32 -> O1
H42 -> O1
H52 -> O1
H12 -> O2
H22 -> O2
H32 -> O2
H42 -> O2
H52 -> O2
H12 -> O3
H22 -> O3
H32 -> O3
H42 -> O3
H52 -> O3
H12 -> O4
H22 -> O4
H32 -> O4
H42 -> O4
H52 -> O4
}
窗口运行如下命令:
dot -Tjpg nn.dot -o nn.jpg
得到图形如下:
三、python脚本优化
当随着神经网络隐含层层数和各层神经元个数增多,graphviz脚本需要复制粘贴大量格式相同代码,为此考虑python脚本自动增加代码,从而减轻重复工作量。
1. git项目克隆
git clone https://github.com/baymaxKevin/makeNN.git
2. 参数调整
在makeDefConfig方法中修改隐含层层数和各层神经元个数layers_cfg,这里在上面网络基础上,隐含层增加一层,隐含层节点分别为10,4,8。
3. 运行
cmd命令或者Pycharm运行二选一。
3.1 cmd命令
python ./makeNN.py
3.2 Pycharm运行
在Pycharm直接运行即可。
3.3 结果展示
参考文章
https://blog.csdn.net/lanchunhui/article/details/51469006?utm_source=blogxgwz12