文档帮助中心文档
分析深度学习网络架构
analyzeNetwork(净)
analyzeNetwork(层)
analyzeNetwork (lgraph)
analyzeNetwork (dlnet)
analyzeNetwork (lgraph TargetUsage,目标)
使用analyzeNetwork要可视化并理解网络的体系结构,请检查您已经正确定义了体系结构,并在培训之前检测问题。的问题,analyzeNetwork检测包括缺失或未连接的层、错误大小的层输入、错误数量的层输入和无效的图结构。
analyzeNetwork
例子
analyzeNetwork (净)分析了SeriesNetwork或DAGNetwork对象净.该功能以交互式的方式显示网络架构,并提供有关网络层的详细信息。层信息包括层激活和可学习参数的大小,可学习参数的总数,循环层的状态参数的大小。
analyzeNetwork (净)
净
SeriesNetwork
DAGNetwork
提示
交互式地可视化、分析和训练一个网络,使用deepNetworkDesigner(净).有关更多信息,请参见深层网络设计师.
deepNetworkDesigner(净)
analyzeNetwork (层)分析层阵列层也可以检测错误和问题trainNetwork工作流。
analyzeNetwork (层)
层
trainNetwork
analyzeNetwork (lgraph)分析层图lgraph也可以检测错误和问题trainNetwork工作流。
analyzeNetwork (lgraph)
lgraph
analyzeNetwork (dlnet)分析了dlnetwork对象用于自定义训练循环工作流。不支持输入未连接的网络。金宝app
analyzeNetwork (dlnet)
dlnet
dlnetwork
analyzeNetwork (lgraph“TargetUsage”,目标)分析层图lgraph用于指定的目标工作流。用于分析层图时使用此语法dlnetwork工作流。
analyzeNetwork (lgraph“TargetUsage”,目标)
目标
全部折叠
加载一个预先训练的GoogLeNet卷积神经网络。
网= googlenet
net = DAGNetwork with properties: Layers: [144×1 net.cnn.layer. layer]连接:[170×2 table]
分析了网络。analyzeNetwork显示网络架构的交互图和包含有关网络层信息的表。
使用左边的情节研究网络架构。在图中选择一个图层。选中的图层在绘图和图层表中突出显示。
在该表中,可以查看层属性、层类型、层激活的大小和可学习参数等层信息。一层的激活就是该层的输出。
在网络中选择一个更深的层。请注意,更深层次的激活在空间维度(前两个维度)中较小,在通道维度(最后一个维度)中较大。利用这种结构,卷积神经网络可以逐渐增加提取图像特征的数量,同时降低空间分辨率。
通过点击层表右上角的箭头并选择,显示每个层中可学习的参数的总数总可学的.若要按列值对层表排序,将鼠标悬停在列标题上并单击出现的箭头。例如,您可以根据可学习参数的总数对各层进行排序,从而确定哪一层包含的参数最多。
创建一个简单的带有快捷连接的卷积网络。将网络的主分支创建为一个层数组,并从层数组创建一个层图。layerGraph连接所有的层层按顺序。
layerGraph
[imageInputLayer([32 32 3],]),“名字”,“输入”16) convolution2dLayer(5日,“填充”,“相同”,“名字”,“conv_1”) reluLayer (“名字”,“relu_1”) convolution2dLayer(3, 16岁,“填充”,“相同”,“步”,2,“名字”,“conv_2”) reluLayer (“名字”,“relu_2”) additionLayer (2“名字”,“add1”) convolution2dLayer(3, 16岁,“填充”,“相同”,“步”,2,“名字”,“conv_3”) reluLayer (“名字”,“relu_3”) additionLayer (3“名字”,“add2”) fullyConnectedLayer (10“名字”,“俱乐部”) classificationLayer (“名字”,“输出”));lgraph = layerGraph(层);
创建快捷连接。其中一个快捷连接包含一个1乘1的卷积层skipConv.
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查找网络中的四个错误。
调查和修复网络中的错误。在本例中,以下问题导致错误:
输出类概率的softmax层必须在分类层之前。来修复输出分类层,在分类层之前增加一个softmax层。
输出
的skipConv层没有连接到网络的其余部分。它应该是快捷连接的一部分add1和add2层。要修复此错误,请连接add1来skipConv和skipConv来add2.
add1
add2
的add2层被指定有三个输入,但层只有两个输入。要修复错误,将输入的数量指定为2.
2
添加层的所有输入必须具有相同的大小,但是add1层有两个不同大小的输入。因为conv_2层有一个“步”值为2时,该层将在前两个维度(空间维度)中对激活进行因子2的采样。来调整输入的大小relu2层,使其具有与输入相同的大小relu1,通过设置下采样来去除下采样“步”的价值conv_2层为1。
conv_2
“步”
relu2
relu1
将这些修改应用到这个例子开始的层图构造中,并创建一个新的层图。
[imageInputLayer([32 32 3],]),“名字”,“输入”16) convolution2dLayer(5日,“填充”,“相同”,“名字”,“conv_1”) reluLayer (“名字”,“relu_1”) convolution2dLayer(3, 16岁,“填充”,“相同”,“步”, 1“名字”,“conv_2”) reluLayer (“名字”,“relu_2”) additionLayer (2“名字”,“add1”) convolution2dLayer(3, 16岁,“填充”,“相同”,“步”,2,“名字”,“conv_3”) reluLayer (“名字”,“relu_3”) additionLayer (2“名字”,“add2”) fullyConnectedLayer (10“名字”,“俱乐部”) softmaxLayer (“名字”,“softmax”);classificationLayer (“名字”,“输出”));lgraph = layerGraph(层);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”);
分析新的架构。新的网络不包含任何错误,可以随时接受训练。
创建一个自定义训练循环的层图。对于自定义训练循环工作流,层图必须没有输出层。
[imageInputLayer([28 28 1],]),“归一化”,“没有”,“名字”,“输入”20岁的)convolution2dLayer (5“名字”,“conv1”) batchNormalizationLayer (“名字”,“bn1”) reluLayer (“名字”,“relu1”20岁的)convolution2dLayer (3“填充”, 1“名字”,“conv2”) batchNormalizationLayer (“名字”,“bn2”) reluLayer (“名字”,“relu2”20岁的)convolution2dLayer (3“填充”,1“名字”,“conv3”) batchNormalizationLayer (“名字”,“bn3”) reluLayer (“名字”,“relu3”) fullyConnectedLayer (10“名字”,“俱乐部”) softmaxLayer (“名字”,“softmax”));lgraph = layerGraph(层);
层图分析使用analyzeNetwork函数,并设置“TargetUsage”选项“dlnetwork”.
“TargetUsage”
“dlnetwork”
analyzeNetwork (lgraph“TargetUsage”,“dlnetwork”)
在这里,函数没有报告任何与层图有关的问题。
训练有素的网络,指定为SeriesNetwork或者一个DAGNetwork对象。您可以通过导入一个预先训练过的网络(例如,使用googlenet功能)或通过训练自己的网络使用trainNetwork.
googlenet
网络层,指定为层数组中。
有关内置层的列表,请参见深度学习层列表.
LayerGraph
层图,指定为LayerGraph对象。要创建图层图,请使用layerGraph.
网络自定义训练循环,指定为dlnetwork对象。
“trainNetwork”
目标工作流,指定为以下其中之一:
“trainNetwork”-分析层图使用trainNetwork函数。例如,该函数检查层图是否有一个输出层和没有断开的层输出。
“dlnetwork”-分析层图的使用dlnetwork对象。例如,该函数检查层图是否没有任何输出层。
assembleNetwork|DAGNetwork|深层网络设计师|LayerGraph|情节|SeriesNetwork|trainNetwork
assembleNetwork
情节
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系