主要内容

分析

分析深度学习网络架构

描述

分析为了可视化和理解网络的体系结构,检查您是否已正确定义了架构,并在培训前检测问题。问题分析检测包括缺失或未连接的层,不正确的层输入,层输入的不正确数,图形结构无效。

例子

分析(分析系列网络或者Dagnetwork.目的。该功能显示网络架构的交互式可视化,并提供有关网络层的详细信息。图层信息包括层激活和学习参数的大小,学习参数的总数,以及经常性层的状态参数的大小。

小费

以交互式可视化,分析和培训网络,使用DeepNetWorkDesigner(网)。有关更多信息,请参阅深网络设计师

分析(层数分析图层阵列层数并检测错误和问题Trainnetwork.工作流程。

例子

分析(LGRAPH.分析图层图LGRAPH.并检测错误和问题Trainnetwork.工作流程。

分析(DLNET.分析dlnetwork.自定义训练循环工作流的对象。不支持具有未连接输入的网络。金宝app

例子

分析(LGRAPH.,'targetusage',目标分析图层图LGRAPH.对于指定的目标工作流程。在分析图层图时使用此语法dlnetwork.工作流程。

例子

全部收缩

装载佩带的Googlenet卷积神经网络。

net = googlenet.
net =具有属性的Dagnetwork:图层:[144×1 nnet.cnn.layer.layer]连接:[170×2表]

分析网络。分析显示网络架构的交互式图和包含有关网络层信息的表。

使用左侧的绘图调查网络架构。在图中选择一个图层。所选层在绘图和层表中突出显示。

在表中,查看层信息(如图层属性,图层类型和大小的层次)和学习参数的大小。层的激活是该层的输出。

在网络中选择更深层。请注意,在空间尺寸(前两个维度)中,更深层的激活较小,并且在通道尺寸(最后一维)中更大。使用该结构使卷积神经网络能够逐渐增加提取的图像特征的数量,同时降低空间分辨率。

通过单击图层表的右上角的箭头显示每层学习参数的总数,然后选择学术总量。要按列值对图层表进行排序,请将鼠标悬停在列标题上,然后单击出现的箭头。例如,您可以通过从学习参数的总数进行排序,确定哪些图层包含最多参数。

分析(净)

使用快捷连接创建一个简单的卷积网络。将网络的主分支创建为图层数组,并从图层阵列中创建一个图层图。分层图连接所有图层层数顺序地。

图层= [imageInputLayer([32 32 3],'名称''输入')卷积2dlayer(5,16,'填充''相同的''名称''conv_1')剥离('名称''relu_1')卷积2dlayer(3,16,'填充''相同的''走吧'2,'名称''conv_2')剥离('名称''relu_2')附加层(2,'名称''Add1')卷积2dlayer(3,16,'填充''相同的''走吧'2,'名称''conv_3')剥离('名称''relu_3')附加层(3,'名称''Add2')全连接层(10,'名称''fc'scassificationlayer('名称''输出')];Lgraph = LayerGraph(层);

创建快捷方式连接。其中一个快捷连接包含单个1×1卷积层Skipconv.

Skipconv = Convolution2dlayer(1,16,'走吧'2,'名称''skipconv');Lgraph = Addlayers(LAPHAGH,SKIPCONV);Lgraph = ConnectLayers(LAPHAGE,'relu_1''Add1 / In2');Lgraph = ConnectLayers(LAPHAGE,'Add1''Add2 / In2');

分析网络架构。分析在网络中查找四个错误。

分析(LGROPH)

调查并修复网络中的错误。在此示例中,以下问题导致错误:

  • 输出类概率的软MAX层必须在分类层之前。修复错误输出分类图层,在分类层之前添加软MAX层。

  • Skipconv.图层未连接到网络的其余部分。它应该是捷径连接的一部分Add1.Add2.层。要修复此错误,请连接Add1.Skipconv.Skipconv.Add2.

  • Add2.将图层指定为具有三个输入,但图层只有两个输入。要修复错误,请指定输入的数量2

  • 所有输入到加法层必须具有相同的大小,但是Add1.图层有两个具有不同大小的输入。因为这Conv_2.层有一个'走吧'值为2,该层在前两个维度(空间尺寸)中将激活倍数倍数。从中调整输入大小relu2.层使其具有与输入相同的大小relu1.,通过设置删除下采样'走吧'价值Conv_2.第1层。

从此示例的开头将这些修改应用于图层图构造,并创建了一个新的图层图。

图层= [imageInputLayer([32 32 3],'名称''输入')卷积2dlayer(5,16,'填充''相同的''名称''conv_1')剥离('名称''relu_1')卷积2dlayer(3,16,'填充''相同的''走吧',1,'名称''conv_2')剥离('名称''relu_2')附加层(2,'名称''Add1')卷积2dlayer(3,16,'填充''相同的''走吧'2,'名称''conv_3')剥离('名称''relu_3')附加层(2,'名称''Add2')全连接层(10,'名称''fc')softmaxlayer('名称''softmax');ClassificationLayer('名称''输出')];Lgraph = LayerGraph(层);Skipconv = Convolution2dlayer(1,16,'走吧'2,'名称''skipconv');Lgraph = Addlayers(LAPHAGH,SKIPCONV);Lgraph = ConnectLayers(LAPHAGE,'relu_1''Add1 / In2');Lgraph = ConnectLayers(LAPHAGE,'Add1''skipconv');Lgraph = ConnectLayers(LAPHAGE,'skipconv''Add2 / In2');

分析新架构。新网络不包含任何错误,并已准备好培训。

分析(LGROPH)

为自定义训练循环创建一个图层图。对于自定义训练循环工作流程,图层图不得具有输出层。

图层= [imageInputLayer([28 28 1],'正常化''没有任何''名称''输入')卷积2dlayer(5,20,'名称''conv1'batchnormalizationlayer('名称''bn1')剥离('名称''relu1')卷积2dlayer(3,20,'填充',1,'名称''conv2'batchnormalizationlayer('名称''bn2')剥离('名称''relu2')卷积2dlayer(3,20,'填充',1,'名称''conv3'batchnormalizationlayer('名称''bn3')剥离('名称''relu3')全连接层(10,'名称''fc')softmaxlayer('名称''softmax')];Lgraph = LayerGraph(层);

使用该层图分析图层图分析功能并设置'targetusage'选择'dlnetwork'

分析(LGraph,'targetusage''dlnetwork'

在这里,该函数未报告图层图的任何问题。

输入参数

全部收缩

训练有素的网络,指定为a系列网络或者Dagnetwork.目的。您可以通过导入佩带的网络(例如,使用)来获得培训的网络googlenet.功能)或使用自己的网络使用Trainnetwork.

网络图层,指定为a大批。

有关内置图层列表,请参阅深度学习层名单

图层图,指定为a分层图目的。要创建图层图,请使用分层图

用于自定义训练循环的网络,指定为adlnetwork.目的。

目标工作流程,指定为以下之一:

  • 'trainnetwork'- 分析用于使用的层图Trainnetwork.功能。例如,该功能检查图层图是否具有输出层且没有断开连接的层输出。

  • 'dlnetwork'- 分析用于使用的层图dlnetwork.对象。例如,该功能检查图层图没有任何输出层。

在R2018A介绍