前言
创建神经网络有两种方式,使用APP:Deep NetworkDesigner,以及利用函数创建深度神经网络。
利用DAG网络创建神经网络,也属于使用函数创建神经网络的方式。DAG网络用于创建具有更为复杂体系结构的神经网络(残差网络就是一种典型的DAG网络),其中,网络中的每一层均为有向无环图,各层可以有来自其他层的多个输入和多个输出。
创建DAG网络时,常用的函数如下:
例子:创建一个识别手写字的DNG网络
1. 创建具有复杂结构的DAG网络
(1)首先,创建网络的主干。用layerGraph函数创建图层,用plot可视化该图层。
注意,additionLayer(2,'Name','add')层有两个输入,即 'in1'和'in2'。而此时additionLayer的 'in1'已经存在, in1= relu_3。
(2)创建一个1x1的卷积层,并将其添加到DAG网络中,将其可视化。
注意,卷积层skipConv的特征数为32,与relu_3层一致(其上面的卷积层conv_3有32个特征数),从而使得add层可以叠加 skipConv层和relu_3层的输出。
(3)创建 relu_1 层到 add 层的连接。可视化图层
2. 利用创建好的DAG网络去训练和验证手写字
(1)加载手写字的训练集和测试集
(2)设置训练参数,训练神经网络。
注意,每迭代ValidationFrequency次,trainNetwork用验证集验证一次网络。
网络的训练过程:
查看训练的DAG网络属性。
(3)验证训练得到的网络。
可以看出,网络精度很高。
其中,classify是用训练好的网络进行分类。