检查自定义层的有效性
checkLayer (
使用尺寸的生成数据检查自定义层的有效性层
,validInputSize
)validInputSize
.对于具有单个输入的层,设置validInputSize
到图层的典型输入数据大小。对于具有多个输入的图层,设置validInputSize
到典型尺寸的小区阵列,其中每个元素对应于层输入。
checkLayer (
使用一个或多个名称值对指定其他选项。层
,validInputSize
,名称,值
)
检查示例自定义层的有效性前列腺素
.
定义一个自定义PReLU层。要创建这个图层,保存文件Prelulayer.m.
在当前文件夹中。
创建图层的实例并检查它是否有效使用checkLayer
.将有效的输入大小设置为对图层的单个观察的典型大小。对于单个输入,该层预计大小的观察h-经过-w-经过-c, 在哪里h,w, 和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, 在哪里h,w, 和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
对象自定义层,指定为一个nnet.layer.layer.
目的,nnet.layer.classificationLayer.
对象,或者nnet.layer.RegressionLayer
对象。有关如何定义自定义层的示例,请参见使用可学习参数定义自定义深度学习层.
的checkLayer
功能不支持继承的图层金宝appnnet.layer.Formattable.
.
validInputSize
- - - - - -有效输入大小有效输入大小的图层,指定为正整数的正整数或小区阵列的向量。
对于具有单个输入的图层,请指定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, 在哪里h,w, 和c分别为输入数据的高度、宽度和通道数N对应观测次数,则观测维数为4。有关更多信息,请参见层输入大小.
如果指定观察维度,则checkLayer
函数使用大小为1和2的小批量生成的数据检查层函数是否有效。如果不指定观察维度,则该函数将跳过相应的测试。
数据类型:单身的
|双倍的
|INT8.
|int16
|INT32.
|INT64.
|uint8.
|uint16
|UINT32.
|UINT64
“CheckCodegenCompatibility”
- - - - - -标志以启用代码生成测试假
(默认)|真的
标志以启用代码生成测试,指定为逗号分隔的对组成“CheckCodegenCompatibility”
和真的
要么假
.
如果“CheckCodegenCompatibility”
是真的
,然后你必须设置'观察树'
选项。
的checkLayer
功能不会检查与代码生成不兼容的函数。要检查代码生成是否支持自定义图层定义,请首先使用金宝app代码生成准备.有关更多信息,请参见使用代码生成准备工具检查代码(MATLAB编码器).
数据类型:逻辑
对于每层,有效的输入大小和观察尺寸取决于上一层的输出。
对于中间层(类型层nnet.layer.layer.
),有效输入大小和观察尺寸取决于输入到图层的数据类型。
对于具有单个输入的图层,请指定validInputSize
作为对应于输入数据的尺寸的整数的矢量。
对于具有多个输入的图层,请指定validInputSize
作为传感器的单元阵列,其中每个向量对应于层输入,并且矢量的元件对应于相应的输入数据的尺寸。
对于较大的输入,梯度检查需要更长的时间来运行。要加快测试速度,请指定较小的有效输入大小。
层输入 | 输入大小 | 观察维度 |
---|---|---|
2-D图像 | h-经过-w-经过-c-经过-N, 在哪里h,w, 和c对应于图像的高度,宽度和数量,以及N是观察人数。 | 4 |
3-D图像 | 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分别为三维图像的高度、宽度、深度和通道数,N是观察人数,和年代是序列长度。 | 5 |
例如,对于二维图像分类问题,设置validInputSize
到[w c h]
, 在哪里h
,w
, 和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 , 在哪里h,w, 和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 , 在哪里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
是响应的数量,和'观察树'
到4
.
的checkLayer
函数通过执行一系列测试来检查自定义层的有效性,如表中所示。有关所使用的测试的详细信息checkLayer
,请参阅检查自定义层有效性.
的checkLayer
函数使用这些测试来检查自定义中间图层的有效性(类型类型nnet.layer.layer.
).
测试 | 描述 |
---|---|
functionSyntaxesAreCorrect |
正确定义了图层函数的语法。 |
predictDoesNotError |
预测 没有错误。 |
forwarddoesnoterror. |
当指定时, |
ForwardPredictareConsistentInsize. |
什么时候 |
后德诺斯诺罗兰 |
当指定时,落后 没有错误。 |
反向索担心 |
什么时候
|
预测isconsistentintype |
输出 |
forwardIsConsistentInType |
什么时候 |
backwardIsConsistentInType |
什么时候 |
梯度arenumervallycorrect. |
什么时候落后 指定了,计算的渐变落后 与数值梯度保持一致。 |
backwardPropagationDoesNotError |
什么时候落后 未指定,可以使用自动差异来计算衍生物。 |
codegenpragmadefinedinclassdef. |
pragma“% # codegen” 用于代码生成在类文件中指定。 |
checkfor金宝appsupportedlayerpropertiesforcodegen. |
图层属性支持代码生成。金宝app |
predictisvalidforcodegegeneration. |
预测 对于代码生成有效。 |
测试预测isconsistentintype
,forwardIsConsistentInType
, 和backwardIsConsistentInType
还要检查GPU兼容性。要在GPU上执行图层函数,功能必须支持类型的输入和输出金宝appGPUArray.
使用底层数据类型单身的
.
的checkLayer
函数使用这些测试来检查自定义输出图层的有效性(类型类型nnet.layer.classificationLayer.
要么nnet.layer.RegressionLayer
).
测试 | 描述 |
---|---|
forwardLossDoesNotError |
forwardLoss 没有错误。 |
Backwardlossdoesnoterror. |
背瓣 没有错误。 |
forwardLossIsScalar |
的输出forwardLoss 是标量。 |
backwardLossIsConsistentInSize |
什么时候背瓣 被指定,输出背瓣 尺寸一致:DLDY. 与预测的大小相同Y . |
forwardlossisconsistentintype. |
的输出 |
backwardLossIsConsistentInType |
什么时候 |
梯度arenumervallycorrect. |
什么时候背瓣 指定了,计算的渐变背瓣 数字是正确的。 |
backwardPropagationDoesNotError |
什么时候背瓣 未指定,可以使用自动差异来计算衍生物。 |
的forwardlossisconsistentintype.
和backwardLossIsConsistentInType
测试还检查GPU兼容性。要在GPU上执行图层函数,功能必须支持类型的输入和输出金宝appGPUArray.
使用底层数据类型单身的
.
你点击一个链接对应于这个MATLAB命令:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。