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操作的功能 。
层= 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
对象
层检查,指定为一个nnet.layer.Layer
,nnet.layer.ClassificationLayer
,nnet.layer.RegressionLayer
,或FunctionLayer
对象。
如果层
有可学的或状态参数,那么层必须被初始化。如果层有一个定制的初始化
函数,然后使用初始化函数首先初始化层使用networkDataLayout
对象。
的checkLayer
功能不支持继承的层次万博1manbetxnnet.layer.Formattable
。
为一个例子,演示如何定义自己的自定义层,明白了定义定制的深度学习层与可学的参数。创建一个层,适用于一个指定的函数,使用functionLayer
。
validInputSize
- - - - - -有效输入大小
向量的正整数|单元阵列的向量的正整数
有效的输入层的大小,指定为一个向量的正整数数组或单元向量的正整数。
对一个输入层,指定
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
ObservationDimension
- - - - - -观察维度
正整数
观察维度,指定为一个正整数。
观察维度指定维度层的输入数据对应于观测。例如,如果层预计输入数据的大小h——- - - - - -w——- - - - - -c——- - - - - -N,在那里h,w,c对应的高度、宽度和数量的输入数据的通道,分别N对应于观测的数量,然后观察维度是4。有关更多信息,请参见层输入大小。
如果您指定观察维度,那么checkLayer
函数检查层函数是有效的使用生成的数据和mini-batches大小为1和2。如果你不指定观察维度,然后跳过功能对应的测试。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
CheckCodegenCompatibility
- - - - - -国旗使代码生成测试
0
(假)(默认)|1
(真正的)
国旗使代码生成测试,指定为0
(虚假的)或1
(真正的)。
如果CheckCodegenCompatibility
是1
(真正的),那么你必须指定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
对应的高度、宽度和通道的图像,分别ObservationDimension
来4
。
代码生成支持过渡层与二维图像输入万博1manbetx。
输出层(层的类型nnet.layer.ClassificationLayer
或nnet.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
类的数量,ObservationDimension
来4
。
回归问题的尺寸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
反应的数量,ObservationDimension
来4
。
算法
测试列表
的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.ClassificationLayer
或nnet.layer.RegressionLayer
)。
测试 | 描述 |
---|---|
forwardLossDoesNotError |
forwardLoss 没有错误。 |
backwardLossDoesNotError |
backwardLoss 没有错误。 |
forwardLossIsScalar |
的输出forwardLoss 是标量。 |
backwardLossIsConsistentInSize |
当backwardLoss 指定的输出backwardLoss 的大小是一致的:dLdY 都是一样的尺寸的预测吗Y 。 |
forwardLossIsConsistentInType |
的输出 |
backwardLossIsConsistentInType |
当 |
gradientsAreNumericallyCorrect |
当backwardLoss 是指定的,梯度计算的backwardLoss 数字是正确的。 |
backwardPropagationDoesNotError |
当backwardLoss 没有指定,金融衍生品可以是计算使用自动分化。 |
的forwardLossIsConsistentInType
和backwardLossIsConsistentInType
测试还检查GPU兼容性。GPU执行层函数,函数必须支持的输入和输出类型万博1manbetxgpuArray
与底层数据类型单
。
版本历史
介绍了R2018a
Abrir比如
这种版本modificada德埃斯特比如。害怕Desea abrir埃斯特比如con sus modificaciones吗?
第一de MATLAB
Ha事实clic en联合国围绕此时一个埃斯特第一de MATLAB:
Ejecute el第一introduciendolo en la ventana de第一de MATLAB。洛杉矶navegadores网络没有admiten第一de MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。