主要内容

DAGNetwork

深度学习的有向无环图(DAG)网络

描述

DAG网络是一种用于深度学习的神经网络,其层排列为有向无环图。DAG网络可以具有更复杂的体系结构,其中各层具有来自多个层的输入和向多个层的输出。

创建

有几种方法可以创建DAGNetwork对象:

请注意

要了解其他预训练网络,请参见预训练深度神经网络

属性

全部展开

该属性是只读的。

网络层,指定为a数组中。

该属性是只读的。

层连接,指定为具有两列的表。

每个表行表示层图中的一个连接。第一列,,指定每个连接的源。第二列,目的地,指定每个连接的目的地。连接源和目标要么是层名,要么具有以下形式“layerName / IOName”,在那里“IOName”输入或输出层的名称。

数据类型:表格

该属性是只读的。

网络输入层名称,指定为字符向量的单元数组。

数据类型:细胞

网络输出层名称,指定为字符向量的单元数组。

数据类型:细胞

对象的功能

激活 计算深度学习网络层激活
分类 使用经过训练的深度学习神经网络分类数据
预测 使用经过训练的深度学习神经网络预测反应
情节 绘图神经网络架构

例子

全部折叠

为深度学习创建一个简单的有向无环图(DAG)网络。训练网络对数字图像进行分类。本例中的简单网络包括:

  • 按顺序连接的层的主要分支。

  • 一个快捷方式连接包含一个1 × 1的卷积层。快捷连接使参数梯度更容易从输出层流向网络的较早层。

创建网络的主分支作为层阵列。附加层对多个输入元素求和。指定添加层要求和的输入数。为了方便以后添加连接,请为第一个ReLU层和附加层指定名称。

layers = [imageInputLayer([28 28 1])卷积2dlayer (5,16,“填充”“相同”) batchNormalizationLayer relullayer (“名字”“relu_1”32岁的)convolution2dLayer (3“填充”“相同”“步”,2) batchnormalize layer reluLayer convolution2dLayer(3,32;“填充”“相同”) batchNormalizationLayer reluLayer additionLayer(2,“名字”“添加”) averagePooling2dLayer (2“步”,2) fulllyconnectedlayer (10) softmaxLayer classificationLayer];

从层数组中创建一个层图。layerGraph连接所有的图层按顺序。绘制层图。

lgraph = layerGraph(layers);图绘制(lgraph)

图包含一个轴对象。axes对象包含一个graphplot类型的对象。

创建1 × 1卷积层并将其添加到层图中。指定卷积过滤器的数量和步幅,以便激活大小与第三个ReLU层的激活大小匹配。这种安排使附加层能够添加第三个ReLU层和1 × 1卷积层的输出。为了检查层是否在图中,绘制层图。

skipConv = convolution2dLayer(1,32,“步”2,“名字”“skipConv”);lgraph = addLayers(lgraph,skipConv);图绘制(lgraph)

图包含一个轴对象。axes对象包含一个graphplot类型的对象。

创建快捷连接“relu_1”图层到“添加”层。由于您在创建添加层时指定了2个作为其输入的数量,因此该层有两个名为“三机”“in2”.第三个ReLU层已经连接到“三机”输入。连接“relu_1”图层到“skipConv”图层和“skipConv”图层到“in2”的输入“添加”层。添加的层现在将第三个ReLU层的输出和“skipConv”层。为了检查层是否正确连接,绘制层图。

lgraph = connectLayers(lgraph,“relu_1”“skipConv”);lgraph = connectLayers(lgraph,“skipConv”“添加/ in2”);图绘制(lgraph);

图包含一个轴对象。axes对象包含一个graphplot类型的对象。

加载训练和验证数据,该数据由28 × 28的数字灰度图像组成。

[XTrain,YTrain] = digitTrain4DArrayData;[XValidation,YValidation] = digitTest4DArrayData;

指定培训选项并训练网络。trainNetwork每次使用验证数据验证网络ValidationFrequency迭代。

options = trainingOptions(“个”“MaxEpochs”8“洗牌”“every-epoch”“ValidationData”{XValidation, YValidation},“ValidationFrequency”30岁的“详细”假的,“阴谋”“训练进步”);net = trainNetwork(XTrain,YTrain,lgraph,options);

Figure Training Progress (03- march -2023 09:03:27)包含2个轴对象和另一个类型为uigridlayout的对象。轴对象1与xlabel迭代,ylabel损失包含15个对象类型补丁,文本,行。具有xlabel迭代,ylabel精度(%)的轴对象2包含15个类型为patch, text, line的对象。

显示训练后网络的属性。网络是一个DAGNetwork对象。

net = DAGNetwork with properties: Layers: [16x1 nnet.cnn.layer.Layer] Connections: [16x2 table] InputNames: {'imageinput'} OutputNames: {'classoutput'}

对验证图像进行分类并计算准确率。网络是非常准确的。

分类(net,XValidation);准确度=平均值(ypredicting == YValidation)
精度= 0.9934

扩展功能

版本历史

在R2017b中引入