DAG网络是用于深度学习的神经网络,其中的层为有向无环图。 DAG网络可以具有更复杂的体系结构,其中各层具有来自多层的输入和输出到多层的信息。 DAGNetwork对象具有单个输入层和单个输出层。
图层连接,指定为具有两列的表。每个表行代表层图中的一个连接。 第一列“源”指定每个连接的源。 第二列“目标”指定每个连接的目标。 连接源和目标可以是层名称,也可以是“ layerName / IOName”形式,其中“ IOName”是层输入或输出的名称。
下面是层和连接;
activations |
Compute convolutional neural network layer activations |
classify |
Classify data using a trained deep learning neural network |
predict |
Predict responses using a trained deep learning neural network |
plot |
Plot neural network layer graph |
layers = [ lgraph = layerGraph(layers); |
% 添加一层卷积层 skipConv = convolution2dLayer(1,32,'Stride',2,'Name','skipConv'); lgraph = addLayers(lgraph,skipConv); figure plot(lgraph) |
% 加法层将'relu_3'和'skipConv'层的输出求和。 lgraph = connectLayers(lgraph,'relu_1','skipConv'); lgraph = connectLayers(lgraph,'skipConv','add/in2'); figure plot(lgraph) |
% 加载数据集;28×28的数字图像 % 指定训练参数 net = trainNetwork(XTrain,YTrain,lgraph,options); |
% 训练集XTrain的激活 act5 = activations(net,XTrain,'fc','OutputAs','columns'); save('digitTrain_fc.mat','act5'); |
% 显示训练网络的参数 >>net net = DAGNetwork with properties: Layers: [16×1 nnet.cnn.layer.Layer] Connections: [16×2 table] |
% 对验证集进行分类并计算准确度 YPredicted = classify(net,XValidation); accuracy = mean(YPredicted == YValidation); disp(accuracy); |
输出结果准确率accuracy= 0.9976