主要内容

checkLayer

检查的有效性定义或功能层

描述

例子

checkLayer (,validInputSize)检查一个自定义的有效性或函数层使用生成的数据的大小validInputSize。对一个输入层,集validInputSize一个典型的大小的输入数据层。与多个输入层,集validInputSize细胞典型的大小的数组,每个元素对应一个输入层。

例子

checkLayer (,validInputSize,名称=值)使用一个或多个名称参数指定附加选项。

例子

全部折叠

检查示例自定义层的有效性preluLayer

自定义图层preluLayer附加到这个例子作为支持文件,PReLU操作适用于输入数据。万博1manbetx进入这一层,打开这个例子作为一个活的脚本。

创建一个实例的层。

层= preluLayer;

因为层有一个自定义的初始化函数,初始化层使用networkDataFormat对象,该对象指定预期的一个输入的大小和格式的观察典型的输入层。

指定一个有效的输入的大小(24日24日20)维度对应的高度,宽度,和前一层的输出渠道的数量。

validInputSize =(24日24日20);布局= networkDataLayout (validInputSize,“SSC”);层=初始化(层、布局);

检查层使用有效性checkLayer。指定有效输入大小尺寸一样大小用来初始化层。当你通过网络传递数据,预计4 - d数组输入层,其中第一三维对应高度,宽度,和前面的通道数层输出,和第四维对应于观测。

validInputSize checkLayer(层)
跳过multi-observation测试。与多个观察,使测试指定“ObservationDimension”选项。对于二维图像数据,设置“ObservationDimension”4。3 d图像数据,设置“ObservationDimension”5。对序列数据,设置“ObservationDimension”2。跳过GPU测试。不兼容的GPU设备发现。跳过代码生成的兼容性测试。检查代码生成层的有效性,指定“CheckCodegenCompatibility”和“ObservationDimension”选项。nnet.checklayer运行。测试LayerWithoutBackward .......... .. Done nnet.checklayer.TestLayerWithoutBackward __________ Test Summary: 12 Passed, 0 Failed, 0 Incomplete, 16 Skipped. Time elapsed: 0.054851 seconds.

结果显示通过,失败,跳过测试。如果你不指定ObservationsDimension选项,或没有GPU,那么相对应的函数跳过测试。

检查多个观测

multi-observation图像输入、图层预计的观察大小的数组h——- - - - - -w——- - - - - -c——- - - - - -N,在那里h,w,c高度,宽度,和数量的渠道,分别和N是观测的数量。

检查层有效性为多个观察,指定的大小的观察和设置ObservationDimension选项4。

checkLayer(层、validInputSize ObservationDimension = 4)
跳过GPU测试。不兼容的GPU设备发现。跳过代码生成的兼容性测试。检查代码生成层的有效性,指定“CheckCodegenCompatibility”和“ObservationDimension”选项。nnet.checklayer运行。测试LayerWithoutBackward .......... ........ Done nnet.checklayer.TestLayerWithoutBackward __________ Test Summary: 18 Passed, 0 Failed, 0 Incomplete, 10 Skipped. Time elapsed: 0.030498 seconds.

在这种情况下,函数层没有发现任何问题。

创建一个功能层对象,softsign操作适用于输入。softsign操作的功能 f ( x ) = x 1 + | x |

层= functionLayer (@ X (X)。/ (1 + abs (X)))
层= FunctionLayer属性:名称:“PredictFcn: @ X (X) / (1 + abs (X)) Formattable: 0 Acceleratable: 0可学的参数没有属性。状态参数没有属性。显示所有属性

检查层是有效的使用checkLayer函数。设置有效输入大小的典型尺寸单一观测输入层。例如,对于一个输入,层希望观察的大小h——- - - - - -w——- - - - - -c,在那里h,w,c高度,宽度,和前面的通道数层输出,分别。

指定validInputSize作为典型的输入数组的大小。

validInputSize = (5 5 20);validInputSize checkLayer(层)
跳过multi-observation测试。与多个观察,使测试指定“ObservationDimension”选项。对于二维图像数据,设置“ObservationDimension”4。3 d图像数据,设置“ObservationDimension”5。对序列数据,设置“ObservationDimension”2。跳过GPU测试。不兼容的GPU设备发现。跳过代码生成的兼容性测试。检查代码生成层的有效性,指定“CheckCodegenCompatibility”和“ObservationDimension”选项。nnet.checklayer运行。测试LayerWithoutBackward .......... .. Done nnet.checklayer.TestLayerWithoutBackward __________ Test Summary: 12 Passed, 0 Failed, 0 Incomplete, 16 Skipped. Time elapsed: 0.1723 seconds.

结果显示通过,失败,跳过测试。如果你不指定ObservationsDimension选项,或没有GPU,那么相对应的函数跳过测试。

检查多个观测

multi-observation图像输入、图层预计的观察大小的数组h——- - - - - -w——- - - - - -c——- - - - - -N,在那里h,w,c高度,宽度,和数量的渠道,分别和N是观测的数量。

检查层有效性为多个观察,指定的大小的观察和设置ObservationDimension选项4。

层= functionLayer (@ X (X)。/ (1 + abs (X)));validInputSize = (5 5 20);checkLayer(层、validInputSize ObservationDimension = 4)
跳过GPU测试。不兼容的GPU设备发现。跳过代码生成的兼容性测试。检查代码生成层的有效性,指定“CheckCodegenCompatibility”和“ObservationDimension”选项。nnet.checklayer运行。测试LayerWithoutBackward .......... ........ Done nnet.checklayer.TestLayerWithoutBackward __________ Test Summary: 18 Passed, 0 Failed, 0 Incomplete, 10 Skipped. Time elapsed: 0.076596 seconds.

在这种情况下,函数层没有发现任何问题。

检查自定义的代码生成兼容层codegenPreluLayer

自定义图层codegenPreluLayer,附加到这个例子作为支持文件,PReLU操作适用于输入数据。万博1manbetx进入这一层,打开这个例子作为一个活的脚本。

创建一个实例层的使用和检查它的有效性checkLayer。指定大小的有效输入大小一个观察典型的输入层。预计4 - d数组输入层,前三个维度对应高度,宽度,和前面的通道数层输出,和第四维对应于观测。

指定一个观察的典型输入的大小和设置“ObservationDimension”选项4。检查代码生成兼容性,设置CheckCodegenCompatibility选项真正的。的checkLayer函数不检查功能不兼容的代码生成。检查自定义层定义支持代码生成,第一次使用万博1manbetx代码生成准备应用。更多信息,请参阅检查代码通过使用代码生成工具(MATLAB编码器)

层= codegenPreluLayer (20,“prelu”);validInputSize =(24日24日20);checkLayer(层、validInputSize ObservationDimension = 4, CheckCodegenCompatibility = true)
跳过GPU测试。不兼容的GPU设备发现。nnet.checklayer运行。测试LayerWithoutBackward .......... .......... ... Done nnet.checklayer.TestLayerWithoutBackward __________ Test Summary: 23 Passed, 0 Failed, 0 Incomplete, 5 Skipped. Time elapsed: 0.49014 seconds.

层的功能没有发现任何问题。

输入参数

全部折叠

层检查,指定为一个nnet.layer.Layer,nnet.layer.ClassificationLayer,nnet.layer.RegressionLayer,或FunctionLayer对象。

如果有可学的或状态参数,那么层必须被初始化。如果层有一个定制的初始化函数,然后使用初始化函数首先初始化层使用networkDataLayout对象。

checkLayer功能不支持继承的层次万博1manbetxnnet.layer.Formattable

为一个例子,演示如何定义自己的自定义层,明白了定义定制的深度学习层与可学的参数。创建一个层,适用于一个指定的函数,使用functionLayer

有效的输入层的大小,指定为一个向量的正整数数组或单元向量的正整数。

  • 对一个输入层,指定validInputSize作为一个整数向量对应的尺寸输入数据。例如,(5 5 10)5-by-5-by-10对应有效的输入数据的大小。

  • 与多个输入层,指定validInputSize作为一个单元阵列的向量,其中每个向量对应一层输入向量的元素对应的尺寸对应的输入数据。例如,{24 20 [24],[24 24 10]}对应于两个输入的有效输入大小,在24-by-24-by-20是一个有效的输入第一输入和24-by-24-by-10大小是一个有效的输入第二个输入的大小。

有关更多信息,请参见层输入大小

对于大的输入大小,梯度检查运行的时间较长。加快检查,指定一个较小的有效输入的大小。

例子:(5 5 10)

例子:{24 20 [24],[24 24 10]}

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|细胞

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

例子:ObservationDimension = 4观察维度设置为4

观察维度,指定为一个正整数。

观察维度指定维度层的输入数据对应于观测。例如,如果层预计输入数据的大小h——- - - - - -w——- - - - - -c——- - - - - -N,在那里h,w,c对应的高度、宽度和数量的输入数据的通道,分别N对应于观测的数量,然后观察维度是4。有关更多信息,请参见层输入大小

如果您指定观察维度,那么checkLayer函数检查层函数是有效的使用生成的数据和mini-batches大小为1和2。如果你不指定观察维度,然后跳过功能对应的测试。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

国旗使代码生成测试,指定为0(虚假的)或1(真正的)。

如果CheckCodegenCompatibility1(真正的),那么你必须指定ObservationDimension选择。

代码生成与二维图像或特征输入支持万博1manbetx过渡层。代码生成与国家不支持层属性(属性与属性万博1manbetx状态)。

checkLayer函数不会检查所使用的功能层与代码生成兼容。检查函数所使用的自定义层也支持代码生成,第一次使用万博1manbetx代码生成准备应用。更多信息,请参阅检查代码通过使用代码生成工具(MATLAB编码器)

一个例子,演示如何定义一个自定义层支持代码生成,明白了万博1manbetx定义定制的深度学习层代码生成

数据类型:逻辑

更多关于

全部折叠

层输入大小

每一层的有效输入大小和观察维度依靠前一层的输出。

中间的层

中间的层(层类型nnet.layer.Layer)、有效输入的大小和观察维度取决于类型的数据的输入层。

  • 对一个输入层,指定validInputSize作为一个整数向量对应的尺寸输入数据。

  • 与多个输入层,指定validInputSize作为一个单元阵列的向量,其中每个向量对应一层输入向量的元素对应的尺寸对应的输入数据。

对于大的输入大小,梯度检查运行的时间较长。加快检查,指定一个较小的有效输入的大小。

层的输入 输入的大小 观察维度
特征向量 c——- - - - - -N,在那里c对应的渠道和数量N是观测的数量吗 2
二维图像 h——- - - - - -w——- - - - - -c——- - - - - -N,在那里h,w,c对应的高度、宽度和通道的图像,分别N是观测的数量吗 4
三维图像 h——- - - - - -w——- - - - - -d——- - - - - -c——- - - - - -N,在那里h,w,d,c对应高度、宽度、深度和通道数量的3 d图像,分别N是观测的数量吗 5
向量序列 c——- - - - - -N——- - - - - -年代,在那里c的特征序列的数量,N是观测的数量,和年代是序列长度 2
二维图像序列 h——- - - - - -w——- - - - - -c——- - - - - -N——- - - - - -年代,在那里h,w,c对应的高度、宽度和通道的图像,分别N是观测的数量,和年代是序列长度 4
三维图像序列 h——- - - - - -w——- - - - - -d——- - - - - -c——- - - - - -N——- - - - - -年代,在那里h,w,d,c对应高度、宽度、深度和通道数量的3 d图像,分别N是观测的数量,和年代是序列长度 5

例如,对于二维图像分类问题,集validInputSize[w c h],在那里h,w,c对应的高度、宽度和通道的图像,分别ObservationDimension4

代码生成支持过渡层与二维图像输入万博1manbetx。

输出层

输出层(层的类型nnet.layer.ClassificationLayernnet.layer.RegressionLayer),设置validInputSize典型的大小的一个输入的观察Y层。

对于分类问题,有效的输入规模和观察维度Y取决于问题的类型:

分类任务 输入的大小 观察维度
二维图像分类 1-by-1-by -K——- - - - - -N,在那里K类和数量吗N是观测的数量吗 4
三维图像分类 1-by-1-by-1-by -K——- - - - - -N,在那里K类和数量吗N是观测的数量吗 5
Sequence-to-label分类 K——- - - - - -N,在那里K类和数量吗N是观测的数量吗 2
Sequence-to-sequence分类 K——- - - - - -N——- - - - - -年代,在那里K类的数量,N是观测的数量,和年代是序列长度 2

例如,对于二维图像分类问题,集validInputSize(1 1 K),在那里K类的数量,ObservationDimension4

回归问题的尺寸Y也取决于问题的类型。下面的表描述的尺寸Y

回归的任务 输入的大小 观察维度
二维图像回归 1-by-1-by -R——- - - - - -N,在那里R反应的数量和吗N是观测的数量吗 4
二维Image-to-image回归 h——- - - - - -w——- - - - - -c——- - - - - -N,在那里h,w,c高度,宽度,和输出的通道数,分别和N是观测的数量吗 4
三维图像回归 1-by-1-by-1-by -R——- - - - - -N,在那里R反应的数量和吗N是观测的数量吗 5
3 d Image-to-image回归 h——- - - - - -w——- - - - - -d——- - - - - -c——- - - - - -N,在那里h,w,d,c的高度、宽度、深度和通道输出的数量,分别和N是观测的数量吗 5
Sequence-to-one回归 R——- - - - - -N,在那里R反应的数量和吗N是观测的数量吗 2
Sequence-to-sequence回归 R——- - - - - -N——- - - - - -年代,在那里R是反应的数量,N是观测的数量,和年代是序列长度 2

例如,对于二维图像回归问题,集validInputSize(1 1 R),在那里R反应的数量,ObservationDimension4

算法

全部折叠

测试列表

checkLayer函数检查自定义层的有效性通过执行一系列测试,在这些表中描述。使用的测试的更多信息checkLayer,请参阅检查自定义层有效性

中间的层

checkLayer函数使用这些测试来检查的有效性定义中间层(层类型nnet.layer.Layer)。

测试 描述
functionSyntaxesAreCorrect 层功能定义正确的语法。
predictDoesNotError 预测函数没有错误。
forwardDoesNotError

当指定时,向前函数没有错误。

forwardPredictAreConsistentInSize

向前是指定的,向前预测输出值的大小相同。

backwardDoesNotError 当指定时,落后的没有错误。
backwardIsConsistentInSize

落后的指定的输出落后的的大小是一致的:

  • 金融衍生品对每个输入都是一样的大小相应的输入。

  • 金融衍生品对每个可学的参数都是一样的大小相应的可学的参数。

predictIsConsistentInType

的输出预测与输入类型是一致的。

forwardIsConsistentInType

向前指定的输出向前与输入类型是一致的。

backwardIsConsistentInType

落后的指定的输出落后的与输入类型是一致的。

gradientsAreNumericallyCorrect 落后的是指定的,梯度计算的落后的与数值梯度相一致。
backwardPropagationDoesNotError 落后的没有指定,金融衍生品可以是计算使用自动分化。
predictReturnsValidStates 层与国家性质的预测函数返回有效状态。
forwardReturnsValidStates 层与国家性质的向前函数,如果指定,返回有效状态。
resetStateDoesNotError 层与国家性质的resetState函数,如果指定,没有错误和重置状态有效状态。
codegenPragmaDefinedInClassDef 的编译指示“% # codegen”对于代码生成类文件中指定。
layerProperties万博1manbetxSupportCodegen 图层属性支持代码生成。万博1manbetx
predict万博1manbetxSupportsCodegen 预测有效期为代码生成。
doesNotHaveStateProperties 对于代码生成,层没有状态属性。
functionLayer万博1manbetxSupportsCodegen 代码生成的图层功能必须指定路径和函数Formattable属性必须0(假)。

一些测试运行多次。这些测试也检查不同的数据类型和GPU的兼容性:

  • predictIsConsistentInType

  • forwardIsConsistentInType

  • backwardIsConsistentInType

GPU执行层函数,函数必须支持的输入和输出类型万博1manbetxgpuArray与底层数据类型

输出层

checkLayer函数使用这些测试来检查的有效性定义输出层(层类型nnet.layer.ClassificationLayernnet.layer.RegressionLayer)。

测试 描述
forwardLossDoesNotError forwardLoss没有错误。
backwardLossDoesNotError backwardLoss没有错误。
forwardLossIsScalar 的输出forwardLoss是标量。
backwardLossIsConsistentInSize backwardLoss指定的输出backwardLoss的大小是一致的:dLdY都是一样的尺寸的预测吗Y
forwardLossIsConsistentInType

的输出forwardLoss类型是一致的:损失同一类型的预测吗Y

backwardLossIsConsistentInType

backwardLoss指定的输出backwardLoss类型是一致的:dLdY必须是相同类型的预测吗Y

gradientsAreNumericallyCorrect backwardLoss是指定的,梯度计算的backwardLoss数字是正确的。
backwardPropagationDoesNotError backwardLoss没有指定,金融衍生品可以是计算使用自动分化。

forwardLossIsConsistentInTypebackwardLossIsConsistentInType测试还检查GPU兼容性。GPU执行层函数,函数必须支持的输入和输出类型万博1manbetxgpuArray与底层数据类型

版本历史

介绍了R2018a