主要内容

分析网络

深度学习网络体系结构分析

描述

使用分析网络要可视化并理解网络的体系结构,请检查您已经正确定义了体系结构,并在培训之前检测问题。的问题,分析网络检测包括缺失或未连接的层、错误大小的层输入、错误数量的层输入和无效的图结构。

例子

分析网络(分析了SeriesNetworkDAGNetwork对象.该功能以交互式的方式显示网络架构,并提供有关网络层的详细信息。层信息包括层激活和可学习参数的大小,可学习参数的总数,循环层的状态参数的大小。

提示

要以交互方式可视化、分析和训练网络,请使用deepNetworkDesigner(net).有关更多信息,请参见深度网络设计器

分析网络(分析层阵列还可以检测的错误和问题列车网络工作流。

例子

分析网络(lgraph分析层图lgraph还可以检测的错误和问题列车网络工作流。

分析网络(数据链路分析了数据链路网络对象用于自定义训练循环工作流。不支持输入未连接的网络。万博1manbetx

例子

分析网络(lgraph,“TargetUsage”,目标分析层图lgraph用于指定的目标工作流。用于分析层图时使用此语法数据链路网络工作流。

例子

全部崩溃

加载预训练的GoogLeNet卷积神经网络。

净=googlenet
net=DAG网络,具有以下属性:层:[144×1 nnet.cnn.layer.layer]连接:[170×2表]

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

使用左边的情节研究网络架构。在图中选择一个图层。选中的图层在绘图和图层表中突出显示。

在该表中,可以查看层属性、层类型、层激活的大小和可学习参数等层信息。一层的激活就是该层的输出。

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

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

分析网络(net)

创建具有快捷连接的简单卷积网络。将网络的主分支创建为层数组,并从层数组创建层图。分层图连接中的所有层按顺序。

[imageInputLayer([32 32 3],]),“名字”“输入”16) convolution2dLayer(5日,“填充”“一样”“名字”“conv_1”) reluLayer (“名字”“relu_1”)卷积2层(3,16,“填充”“一样”“步”2.“名字”“conv_2”) reluLayer (“名字”“relu_2”)附加层(2,“名字”“add1”)卷积2层(3,16,“填充”“一样”“步”2.“名字”“conv_3”) reluLayer (“名字”“relu_3”)附加层(3,“名字”“add2”)完全连接层(10,“名字”“fc”)分类层(“名字”“输出”)];lgraph=层图(层);

创建快捷连接。其中一个快捷连接包含一个1乘1的卷积层skipConv

skipConv = convolution2dLayer(1, 16岁,“步”2.“名字”“skipConv”);lgraph = addLayers (lgraph skipConv);lgraph = connectLayers (lgraph,“relu_1”“add1/in2”);lgraph = connectLayers (lgraph,“add1”“add2 / in2”);

分析网络体系结构。分析网络查找网络中的四个错误。

analyzeNetwork (lgraph)

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

  • 输出类别概率的softmax层必须位于分类层之前输出分类层,在分类层之前增加一个softmax层。

  • skipConv层没有连接到网络的其余部分。它应该是快捷连接的一部分地址1地址2图层。若要修复此错误,请连接地址1skipConvskipConv地址2

  • 地址2图层指定为有三个输入,但图层只有两个输入。要修复错误,请将输入数指定为2

  • 添加层的所有输入必须具有相同的大小,但地址1层有两个不同大小的输入。因为conv_2图层有一个“步”值为2时,该层在前两个维度(空间维度)中以2的因子对激活进行下采样relu2层,使其具有与输入相同的大小relu1,通过设置“步”的价值conv_2层为1。

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

[imageInputLayer([32 32 3],]),“名字”“输入”16) convolution2dLayer(5日,“填充”“一样”“名字”“conv_1”) reluLayer (“名字”“relu_1”)卷积2层(3,16,“填充”“一样”“步”1.“名字”“conv_2”) reluLayer (“名字”“relu_2”)附加层(2,“名字”“add1”)卷积2层(3,16,“填充”“一样”“步”2.“名字”“conv_3”) reluLayer (“名字”“relu_3”)附加层(2,“名字”“add2”)完全连接层(10,“名字”“fc”)软MaxLayer(“名字”“softmax”); 分类层(“名字”“输出”)];lgraph=层图(层);skipConv = convolution2dLayer(1, 16岁,“步”2.“名字”“skipConv”);lgraph = addLayers (lgraph skipConv);lgraph = connectLayers (lgraph,“relu_1”“add1/in2”);lgraph = connectLayers (lgraph,“add1”“skipConv”);lgraph = connectLayers (lgraph,“skipConv”“add2 / in2”);

分析新的架构。新的网络不包含任何错误,可以进行培训。

analyzeNetwork (lgraph)

创建一个自定义训练循环的层图。对于自定义训练循环工作流,层图必须没有输出层。

层=[imageInputLayer([28 1],“正常化”“没有”“名字”“输入”20岁的)convolution2dLayer (5“名字”“conv1”)批处理规范化层(“名字”“bn1”) reluLayer (“名字”“relu1”20岁的)convolution2dLayer (3“填充”1.“名字”“conv2”)批处理规范化层(“名字”“bn2”) reluLayer (“名字”“relu2”)卷积层(3,20,“填充”, 1“名字”“conv3”)批处理规范化层(“名字”“bn3”) reluLayer (“名字”“relu3”)完全连接层(10,“名字”“fc”)软MaxLayer(“名字”“softmax”)];lgraph=层图(层);

层图分析使用分析网络函数并设置“TargetUsage”选择“dlnetwork”

analyzeNetwork (lgraph“TargetUsage”“dlnetwork”

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

输入参数

全部崩溃

训练有素的网络,指定为SeriesNetwork或者DAGNetwork对象。您可以通过导入一个预先训练过的网络(例如,使用水壶功能)或通过使用列车网络

网络层,指定为大堆

有关内置图层的列表,请参见深度学习层列表

图层图,指定为LayerGraph要创建图层图,请使用分层图

自定义训练循环的网络,指定为数据链路网络对象。

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

  • “trainNetwork”–分析图层图,以便与列车网络作用例如,该函数检查图层图是否有输出图层且没有断开连接的图层输出。

  • “dlnetwork”–分析图层图,以便使用数据链路网络例如,该函数检查图层图是否没有任何输出图层。

介绍了R2018a