主要内容

checkLayer

检查自定义层的有效性

描述

例子

checkLayer (validInputSize使用尺寸的生成数据检查自定义层的有效性validInputSize.对于具有单个输入的层,设置validInputSize到图层的典型输入数据大小。对于具有多个输入的图层,设置validInputSize到典型尺寸的小区阵列,其中每个元素对应于层输入。

例子

checkLayer (validInputSize名称,值使用一个或多个名称值对指定其他选项。

例子

全部折叠

检查示例自定义层的有效性前列腺素

定义一个自定义PReLU层。要创建这个图层,保存文件Prelulayer.m.在当前文件夹中。

创建图层的实例并检查它是否有效使用checkLayer.将有效的输入大小设置为对图层的单个观察的典型大小。对于单个输入,该层预计大小的观察h-经过-w-经过-c, 在哪里hw, 和c是先前层输出的高度,宽度和数量。

指定validInputSize作为输入阵列的典型大小。

层=前列腺(20,'prelu');validInputSize = [5 5 20];validInputSize checkLayer(层)
跳过多观察测试。要启用多个观察测试,请指定“观察Dimension”选项。对于2-D图像数据,将“观察Dimension”设置为4.对于3-D图像数据,将“观察Dimension”设置为5.对于序列数据,将“观察Dimension”设置为2.跳过GPU测试。找不到兼容的GPU设备。跳过代码生成兼容性测试。要检查代码生成图层的有效性,请指定“CheckCodeGencompatibility”和“观察Dimension”选项。运行nnet.Checklayer.TestLayerWithoutBound .........所做NNET.CHECKLAYER.TESTLAYERWITHOUTBARKWARD __________测试摘要:9传递,0失败,0不完整,13秒。时间经过时间:0.14162秒。

结果显示通过、失败和跳过测试的数量。如果不指定'观察决定'选项,或没有GPU,则该功能跳过相应的测试。

检查多个观察

对于多观测输入,该层期望一个大小的观测数组h-经过-w-经过-c-经过-N, 在哪里hw, 和c是频道的高度,宽度和数量,以及N是观察人数。

要检查多层观察的有效性,请指定一个观察和集合的典型大小'观察树'4。

层=前列腺(20,'prelu');validInputSize = [5 5 20];validInputSize checkLayer(层,'观察树'4)
跳过GPU测试。找不到兼容的GPU设备。跳过代码生成兼容性测试。要检查代码生成图层的有效性,请指定“CheckCodeGencompatibility”和“观察Dimension”选项。运行nnet.checklayer.testlayerwithoutbourd ........ do do net.checklayer.testlayerwithoutboutward __________测试摘要:13传递,0失败,0个不完整,9跳。经过时间:0.064861秒。

在这种情况下,该功能不会检测到图层的任何问题。

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

定义一个具有代码生成支持的自定义PReLU层。金宝app要创建这个图层,保存文件codegenPreluLayer.m在当前文件夹中。

创建该层的实例并使用checkLayer.将有效的输入大小指定为单个观察到图层的单个观察的大小。该层预期了4-D阵列输入,其中前三个尺寸对应于先前层输出的高度,宽度和通道的通道数,并且第四维度对应于观察。

指定观察输入的典型大小并设置'观察树'选项4。要检查代码生成兼容性,请设置“CheckCodegenCompatibility”选择真的

层= codegenPreluLayer (20,'prelu');validInputSize = [24 24 20];validInputSize checkLayer(层,'观察树',4,“CheckCodegenCompatibility”,真的)
跳过GPU测试。找不到兼容的GPU设备。运行nnet.Checklayer.TestLayerWithoutBound .......... Done Nnet.Checklayer.TestLayerWithoutBarkward __________测试摘要:18传递,0失败,0不完整,4跳。时间过去:0.77122秒。

该函数不检测层的任何问题。

输入参数

全部折叠

自定义层,指定为一个nnet.layer.layer.目的,nnet.layer.classificationLayer.对象,或者nnet.layer.RegressionLayer对象。有关如何定义自定义层的示例,请参见使用可学习参数定义自定义深度学习层

checkLayer功能不支持继承的图层金宝appnnet.layer.Formattable.

有效输入大小的图层,指定为正整数的正整数或小区阵列的向量。

  • 对于具有单个输入的图层,请指定validInputSize作为对应于输入数据的尺寸的整数的矢量。例如,(5 5 10)对应于5-×5-of 10的有效输入数据。

  • 对于具有多个输入的图层,请指定validInputSize作为传感器的单元阵列,其中每个向量对应于层输入,并且矢量的元件对应于相应的输入数据的尺寸。例如,{[24 24 20],[24 24 10]}对应于两个输入的有效输入大小,其中24×24-×20是第一输入的有效输入大小,24×24×10是第二输入的有效输入大小。

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

对于较大的输入,梯度检查需要更长的时间来运行。要加快测试速度,请指定较小的有效输入大小。

例子:(5 5 10)

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

数据类型:单身的|双倍的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32.|UINT64|细胞

名称-值对的观点

指定可选的逗号分隔的对名称,值论点。名称参数名和价值是相应的价值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:'abangationdimension',4设置观察尺寸为4

观察尺寸,指定为逗号分隔对组成'观察树'和一个正整数。

观察尺寸指定层输入数据的哪个维度对应于观察。例如,如果该图层期望输入数据大小h-经过-w-经过-c-经过-N, 在哪里hw, 和c分别为输入数据的高度、宽度和通道数N对应观测次数,则观测维数为4。有关更多信息,请参见层输入大小

如果指定观察维度,则checkLayer函数使用大小为1和2的小批量生成的数据检查层函数是否有效。如果不指定观察维度,则该函数将跳过相应的测试。

数据类型:单身的|双倍的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32.|UINT64

标志以启用代码生成测试,指定为逗号分隔的对组成“CheckCodegenCompatibility”真的要么

如果“CheckCodegenCompatibility”真的,然后你必须设置'观察树'选项。

checkLayer功能不会检查与代码生成不兼容的函数。要检查代码生成是否支持自定义图层定义,请首先使用金宝app代码生成准备.有关更多信息,请参见使用代码生成准备工具检查代码(MATLAB编码器)

数据类型:逻辑

更多关于

全部折叠

层输入大小

对于每层,有效的输入大小和观察尺寸取决于上一层的输出。

中间的层

对于中间层(类型层nnet.layer.layer.),有效输入大小和观察尺寸取决于输入到图层的数据类型。

  • 对于具有单个输入的图层,请指定validInputSize作为对应于输入数据的尺寸的整数的矢量。

  • 对于具有多个输入的图层,请指定validInputSize作为传感器的单元阵列,其中每个向量对应于层输入,并且矢量的元件对应于相应的输入数据的尺寸。

对于较大的输入,梯度检查需要更长的时间来运行。要加快测试速度,请指定较小的有效输入大小。

层输入 输入大小 观察维度
2-D图像 h-经过-w-经过-c-经过-N, 在哪里hw, 和c对应于图像的高度,宽度和数量,以及N是观察人数。 4
3-D图像 h-经过-w-经过-d-经过-c-经过-N, 在哪里hwd, 和c对应于3-D图像的高度,宽度,深度和数量,以及N是观察人数。 5
矢量序列 c-经过-N-经过-年代, 在哪里c为序列的特征个数,N是观察人数,和年代是序列长度。 2
二维图像序列 h-经过-w-经过-c-经过-N-经过-年代, 在哪里hw, 和c对应于图像的频道的高度,宽度和数量,N是观察人数,和年代是序列长度。 4
三维图像序列 h-经过-w-经过-d-经过-c-经过-N-经过-年代, 在哪里hwd, 和c分别为三维图像的高度、宽度、深度和通道数,N是观察人数,和年代是序列长度。 5

例如,对于二维图像分类问题,设置validInputSize[w c h], 在哪里hw, 和c对应于图像的高度,宽度和数量,以及'观察树'4

代码生成只支持带有二维图像输入的金宝app中间层。

输出层

对于输出层(类型的层)nnet.layer.classificationLayer.要么nnet.layer.RegressionLayer), 放validInputSize到单个输入观察的典型大小Y到图层。

用于分类问题,有效的输入大小和观察维度Y取决于问题的类型:

分类任务 输入大小 观察维度
2-D图像分类 1-by-1-by-K-经过-N, 在哪里K班级的数量是多少N是观察人数。 4
3-D图像分类 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是班数,和'观察树'4

对于回归问题,的维度Y还取决于问题的类型。下表描述了尺寸Y

回归任务 输入大小 观察维度
二维图像回归 1-by-1-by-R-经过-N, 在哪里R是响应的数量和N是观察人数。 4
二维Image-to-image回归 h-经过-w-经过-c-经过-N, 在哪里hw, 和c是输出的高度,宽度和数量,以及N是观察人数。 4
3-D图像回归 1-by-1-by-1-by -R-经过-N, 在哪里R是响应的数量和N是观察人数。 5
3 d Image-to-image回归 h-经过-w-经过-d-经过-c-经过-N, 在哪里hwd, 和c是输出的高度,宽度,深度和频道的数量,以及N是观察人数。 5
Sequence-to-one回归 R-经过-N, 在哪里R是响应的数量和N是观察人数。 2
Sequence-to-sequence回归 R-经过-N-经过-年代, 在哪里R为响应次数,N是观察人数,和年代是序列长度。 2

例如,对于二维图像回归问题,设置validInputSize(1 1 R), 在哪里R是响应的数量,和'观察树'4

算法

全部折叠

测试列表

checkLayer函数通过执行一系列测试来检查自定义层的有效性,如表中所示。有关所使用的测试的详细信息checkLayer,请参阅检查自定义层有效性

中间的层

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

测试 描述
functionSyntaxesAreCorrect 正确定义了图层函数的语法。
predictDoesNotError 预测没有错误。
forwarddoesnoterror.

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

ForwardPredictareConsistentInsize.

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

后德诺斯诺罗兰 当指定时,落后没有错误。
反向索担心

什么时候落后指定了,输出落后尺寸一致:

  • 关于每个输入的衍生物与相应的输入相同。

  • 对于每个可学习参数的导数与相应的可学习参数的大小相同。

预测isconsistentintype

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

forwardIsConsistentInType

什么时候向前指定了,输出向前与输入类型一致。

backwardIsConsistentInType

什么时候落后指定了,输出落后与输入类型一致。

梯度arenumervallycorrect. 什么时候落后指定了,计算的渐变落后与数值梯度保持一致。
backwardPropagationDoesNotError 什么时候落后未指定,可以使用自动差异来计算衍生物。
codegenpragmadefinedinclassdef. pragma“% # codegen”用于代码生成在类文件中指定。
checkfor金宝appsupportedlayerpropertiesforcodegen. 图层属性支持代码生成。金宝app
predictisvalidforcodegegeneration. 预测对于代码生成有效。

测试预测isconsistentintypeforwardIsConsistentInType, 和backwardIsConsistentInType还要检查GPU兼容性。要在GPU上执行图层函数,功能必须支持类型的输入和输出金宝appGPUArray.使用底层数据类型单身的

输出层

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

测试 描述
forwardLossDoesNotError forwardLoss没有错误。
Backwardlossdoesnoterror. 背瓣没有错误。
forwardLossIsScalar 的输出forwardLoss是标量。
backwardLossIsConsistentInSize 什么时候背瓣被指定,输出背瓣尺寸一致:DLDY.与预测的大小相同Y
forwardlossisconsistentintype.

的输出forwardLoss是类型的:损失和预测的类型一样吗Y

backwardLossIsConsistentInType

什么时候背瓣被指定,输出背瓣是类型的:DLDY.必须与预测相同Y

梯度arenumervallycorrect. 什么时候背瓣指定了,计算的渐变背瓣数字是正确的。
backwardPropagationDoesNotError 什么时候背瓣未指定,可以使用自动差异来计算衍生物。

forwardlossisconsistentintype.backwardLossIsConsistentInType测试还检查GPU兼容性。要在GPU上执行图层函数,功能必须支持类型的输入和输出金宝appGPUArray.使用底层数据类型单身的

介绍了R2018a