matlab深度学习(DAGNetwork入门之旅)

一、如何创建自己的网络?
DAG网络是用于深度学习的神经网络,其中的层为有向无环图。 DAG网络可以具有更复杂的体系结构,其中各层具有来自多层的输入和输出到多层的信息。 DAGNetwork对象具有单个输入层和单个输出层。
图层连接,指定为具有两列的表。每个表行代表层图中的一个连接。 第一列“源”指定每个连接的源。 第二列“目标”指定每个连接的目标。 连接源和目标可以是层名称,也可以是“ layerName / IOName”形式,其中“ IOName”是层输入或输出的名称。
下面是层和连接;
matlab深度学习(DAGNetwork入门之旅)
文章图片
matlab深度学习(DAGNetwork入门之旅)
文章图片

Object Functions

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 = [
imageInputLayer([28 28 1],'Name','input')

convolution2dLayer(5,16,'Padding','same','Name','conv_1')
batchNormalizationLayer('Name','BN_1')
reluLayer('Name','relu_1')

convolution2dLayer(3,32,'Padding','same','Stride',2,'Name','conv_2')
batchNormalizationLayer('Name','BN_2')
reluLayer('Name','relu_2')
convolution2dLayer(3,32,'Padding','same','Name','conv_3')
batchNormalizationLayer('Name','BN_3')
reluLayer('Name','relu_3')

additionLayer(2,'Name','add')

averagePooling2dLayer(2,'Stride',2,'Name','avpool')
fullyConnectedLayer(10,'Name','fc')
softmaxLayer('Name','softmax')
classificationLayer('Name','classOutput')];
lgraph = layerGraph(layers);
figure
plot(lgraph)
matlab深度学习(DAGNetwork入门之旅)
文章图片

% 添加一层卷积层
skipConv = convolution2dLayer(1,32,'Stride',2,'Name','skipConv');
lgraph = addLayers(lgraph,skipConv);
figure
plot(lgraph)
matlab深度学习(DAGNetwork入门之旅)
文章图片

% 加法层将'relu_3'和'skipConv'层的输出求和。
lgraph = connectLayers(lgraph,'relu_1','skipConv');
lgraph = connectLayers(lgraph,'skipConv','add/in2');
figure
plot(lgraph)
matlab深度学习(DAGNetwork入门之旅)
文章图片

2、加载数据并训练网络
% 加载数据集;28×28的数字图像
[XTrain,YTrain] = digitTrain4DArrayData;
[XValidation,YValidation] = digitTest4DArrayData;
% 指定训练参数
options = trainingOptions('sgdm',...
'MaxEpochs',10,...
'Shuffle','every-epoch',...
'ValidationData',{XValidation,YValidation},...
'ValidationFrequency',30,...
'Verbose',false,...
'Plots','training-progress');
net = trainNetwork(XTrain,YTrain,lgraph,options);

matlab深度学习(DAGNetwork入门之旅)
文章图片

matlab深度学习(DAGNetwork入门之旅)
文章图片

% 训练集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]

3、对验证图像进行分类并计算准确性
% 对验证集进行分类并计算准确度
YPredicted = classify(net,XValidation);
accuracy = mean(YPredicted == YValidation);
disp(accuracy);
输出结果准确率accuracy= 0.9976







【matlab深度学习(DAGNetwork入门之旅)】




    推荐阅读