主要内容

layerGraph

图深度学习的网络层

描述

一层图指定深度学习网络的体系结构具有更复杂的图结构层可以从多个输入层和输出到多个层。网络,这个结构被称为有向无环图(DAG)网络。在您创建一个layerGraph对象,您可以使用对象函数来绘制图形和修改它通过添加,删除连接,隔离层。训练网络,使用层图作为输入trainNetwork或将它转换成一个函数dlnetwork和训练它使用自定义训练循环。

创建

描述

例子

lgraph= layerGraph创建一个空层图不包含层。您可以添加层使用的空图addLayers函数。

例子

lgraph= layerGraph ()从数组创建一个层图网络层和设置财产。的层lgraph连接在同一顺序的订单吗

例子

lgraph= layerGraph ()提取层图SeriesNetwork,DAGNetwork,或dlnetwork对象。例如,您可以提取层图pretrained网络学习进行转移。

输入参数

全部展开

深入学习网络,作为一个指定SeriesNetwork,DAGNetwork,或dlnetwork对象。

属性

全部展开

这个属性是只读的。

网络层,指定为一个数组中。

这个属性是只读的。

层连接,指定为一个表有两列。

每个表格行表示层的连接图。第一列,,指定每个连接的来源。第二列,目的地,指定每个连接的目的地。连接源和目的地是层名称或形式“layerName / IOName”,在那里“IOName”层的名称输入或输出。

数据类型:

这个属性是只读的。

网络输入层名称指定为一个单元阵列的特征向量。

数据类型:细胞

网络输出层名称,指定为一个单元阵列的特征向量。

数据类型:细胞

对象的功能

addLayers 添加层或网络层图
removeLayers 删除图层图层图或网络
replaceLayer 替换或网络层在层图
connectLayers 连接或网络层在层图
disconnectLayers 断开连接或网络层在层图
情节 情节神经网络架构

例子

全部折叠

创建一个空层图和一系列的层。层添加到层图和绘制图表。addLayers按顺序连接层。

lgraph = layerGraph;层= [imageInputLayer ([32 32 3],“名字”,“输入”)convolution2dLayer(3, 16岁,“填充”,“相同”,“名字”,“conv_1”)batchNormalizationLayer (“名字”,“BN_1”)reluLayer (“名字”,“relu_1”));lgraph = addLayers (lgraph层);图绘制(lgraph)

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

创建一个数组的层。

层= [imageInputLayer ([28 28 1],“名字”,“输入”)convolution2dLayer(3, 16岁,“填充”,“相同”,“名字”,“conv_1”)batchNormalizationLayer (“名字”,“BN_1”)reluLayer (“名字”,“relu_1”));

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

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

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

加载一个pretrained SqueezeNet网络。您可以使用此训练网络分类和预测。

网= squeezenet;

修改网络结构,首先提取DAG网络使用的结构layerGraph然后,您可以使用对象的功能LayerGraph修改网络架构。

lgraph = layerGraph(净)
lgraph = LayerGraph属性:层:x1 nnet.cnn.layer.Layer[68]连接:[75 x2表]InputNames:{“数据”}OutputNames: {“ClassificationLayer_predictions”}

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

  • 按顺序的主干层连接。

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

创建的主要分支网络层的数组。添加层和多个输入element-wise。指定输入添加层的数量总和。轻松添加连接后,指定名称第一ReLU层以及层。

层= [imageInputLayer ([28 28 1]) convolution2dLayer(5日16日“填充”,“相同”)batchNormalizationLayer reluLayer (“名字”,“relu_1”32岁的)convolution2dLayer (3“填充”,“相同”,“步”,2)batchNormalizationLayer reluLayer convolution2dLayer(3, 32岁“填充”,“相同”)batchNormalizationLayer reluLayer additionLayer (2“名字”,“添加”)averagePooling2dLayer (2“步”,2)fullyConnectedLayer (10) softmaxLayer classificationLayer];

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

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

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

创建1×1卷积层,并将其添加到层图。指定数量的卷积过滤器和步伐,以便激活大小匹配的激活大小ReLU第三层。这样的安排使添加层添加第三ReLU层和1×1的输出卷积层。检查层图,绘制层图。

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

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

创建快捷方式连接“relu_1”层的“添加”层。因为你指定的两个输入的数量增加层创建它时,有两个输入层“三机”“in2”。已经连接到第三ReLU层“三机”输入。连接“relu_1”层的“skipConv”层和“skipConv”层的“in2”输入的“添加”层。添加层现在资金第三ReLU层和输出“skipConv”层。检查层连接正确,绘制层图。

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

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

负荷训练和验证数据,包括28-by-28灰度图像的数字。

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

指定培训方案和培训网络。trainNetwork验证网络使用验证数据ValidationFrequency迭代。

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

{“字符串”:“图培训进展(31 - 8月- 2022 02:00:51)包含2轴uigridlayout类型的对象和另一个对象。坐标轴对象1包含15块类型的对象,文本行。坐标轴对象2包含15块类型的对象,文本,行。”,“它”:[],“乳胶”:[]}

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

网= DAGNetwork属性:层:x1 nnet.cnn.layer.Layer[16]连接:[16 x2表]InputNames: {“imageinput”} OutputNames: {“classoutput”}

分类验证图像和计算精度。网络是非常准确的。

YPredicted =分类(净,XValidation);精度=意味着(YPredicted = = YValidation)
精度= 0.9934

版本历史

介绍了R2017b

Baidu
map