主要内容

imageInputLayer

图像输入层

描述

图像输入层将2-D图像输入到网络并应用数据规范化。

对于3d图像输入,使用image3dInputLayer

创建

描述

= imageInputLayer (inputSize返回图像输入层,并指定InputSize财产。

例子

= imageInputLayer (inputSize名称,值设置可选的属性使用名称-值对。可以指定多个名称-值对。将每个属性名用单引号括起来。

属性

全部展开

图像输入

输入数据的大小,指定为整数行向量[h w c],在那里hw,c分别对应通道的高度、宽度和数量。

  • 对于灰度图像,指定与的向量c等于1

  • 对于RGB图像,指定一个向量c等于3.

  • 对于多光谱或高光谱图像,指定一个向量c等于通道数。

3-D图像或体积输入,使用image3dInputLayer

例子:[224 224 3]

每次数据通过输入层向前传播时应用数据规范化,指定为以下之一:

  • “zerocenter”-减去指定的平均值的意思是

  • “zscore”-减去指定的平均值的意思是然后除以StandardDeviation

  • “rescale-symmetric”-使用指定的最小值和最大值将输入重新缩放到范围[- 1,1]最小值而且马克斯,分别。

  • “rescale-zero-one”-使用指定的最小值和最大值将输入重新缩放到范围[0,1]最小值而且马克斯,分别。

  • “没有”—不要对输入数据进行归一化。

  • function句柄-使用指定的函数规范化数据。函数必须符合这个形式Y = func(X),在那里X输入数据和输出数据吗Y是规范化的数据。

提示

默认情况下,该软件在训练时自动计算归一化统计数据。为节省训练时的时间,请指定规范化所需的统计信息并设置“ResetInputNormalization”选项trainingOptions

归一化维度,指定为以下之一:

  • “汽车”—如果培训选项为您可以指定任何规范化统计信息(的意思是StandardDeviation最小值,或马克斯),然后在与统计数据相匹配的维度上归一化。否则,在训练时重新计算统计数据并应用通道的归一化。

  • “通道”-通道的标准化。

  • “元素”-元素的标准化。

  • “所有”-使用标量统计数据规范化所有值。

数据类型:字符|字符串

0 -center和z-score归一化的平均值,指定为ah——- - - - - -w——- - - - - -c数组,一个1 × 1 × -c每个通道的均值数组、数值标量或[],在那里hw,c分别对应平均值的高度、宽度和通道数。

如果您指定的意思是属性,然后归一化必须“zerocenter”“zscore”.如果的意思是[],然后软件计算训练时间的平均值。

您可以在未经训练的情况下创建网络时设置此属性(例如,在使用assembleNetwork).

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

z分数归一化的标准差,用a表示h——- - - - - -w——- - - - - -c数组,一个1 × 1 × -c每个通道的均值数组、数值标量或[],在那里hw,c分别对应于标准偏差的高度、宽度和通道数。

如果您指定StandardDeviation属性,然后归一化必须“zscore”.如果StandardDeviation[],然后软件计算训练时的标准差。

您可以在未经训练的情况下创建网络时设置此属性(例如,在使用assembleNetwork).

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

重新缩放的最小值,指定为h——- - - - - -w——- - - - - -c数组,一个1 × 1 × -c每个通道的最小值数组、数字标量或[],在那里hw,c分别对应最小值的高度、宽度和通道数。

如果您指定最小值属性,然后归一化必须“rescale-symmetric”“rescale-zero-one”.如果最小值[],然后软件计算出训练时的最小值。

您可以在未经训练的情况下创建网络时设置此属性(例如,在使用assembleNetwork).

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

重新缩放的最大值,指定为h——- - - - - -w——- - - - - -c数组,一个1 × 1 × -c每个通道的最大值数组、数值标量或[],在那里hw,c分别对应最大值的高度、宽度和通道数。

如果您指定马克斯属性,然后归一化必须“rescale-symmetric”“rescale-zero-one”.如果马克斯[],然后软件计算训练时的最大值。

您可以在未经训练的情况下创建网络时设置此属性(例如,在使用assembleNetwork).

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

请注意

DataAugmentation不推荐使用。要使用裁剪、反射和其他几何变换对图像进行预处理,请使用augmentedImageDatastore代替。

数据增强转换为在训练期间使用,指定为以下之一。

  • “没有”—不进行数据扩充

  • “randcrop”-从训练图像中随机裁剪。随机裁剪的大小与输入大小相同。

  • “randfliplr”-随机翻转输入图像水平与50%的机会。

  • 单元格阵列“randcrop”而且“randfliplr”.软件按单元格数组中指定的顺序应用增强。

增强图像数据是减少过拟合的另一种方法[1][2]

数据类型:字符串|字符|细胞

层名,指定为字符向量或字符串标量。为数组输入时,trainNetworkassembleNetworklayerGraph,dlnetwork函数自动为具有name的层分配名称

数据类型:字符|字符串

该层的输入数量。该层没有输入。

数据类型:

输入层的名称。该层没有输入。

数据类型:细胞

此属性是只读的。

层的输出数量。这个图层只有一个输出。

数据类型:

此属性是只读的。

输出层的名称。这个图层只有一个输出。

数据类型:细胞

例子

全部折叠

创建一个带有名称的28 * 28彩色图像的图像输入层“输入”.默认情况下,该层通过从每个输入图像中减去训练集的平均图像来执行数据归一化。

inputlayer = imageInputLayer([28 28 3],“名字”“输入”
inputlayer = ImageInputLayer with properties: Name: 'input' InputSize:[28 28 3]超参数DataAugmentation: 'none'归一化:'zerocenter' NormalizationDimension: 'auto'意思:[]

类中包含图像输入层数组中。

层= [...imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,“步”,2) fullyConnectedLayer(10) softmaxLayer classificationLayer]
2 " Convolution 20 5x5 convolutions with stride [1 1] and padding [0 0 0 0 0] 3 " ReLU ReLU 4 " Max Pooling 2x2 Max Pooling with stride [2 2] and padding [0 0 0 0 0] 5 " Fully Connected 10 Fully Connected Layer 6 " Softmax Softmax 7 " Classification Output crossentropyex

参考文献

[1]克里日夫斯基,A. I.萨茨科弗,G. E.辛顿。“深度卷积神经网络的ImageNet分类”。神经信息处理系统研究进展.2012年第25卷。

[2]希瑞安,D., U.迈耶,J.施米德休伯。用于图像分类的多列深度神经网络。IEEE计算机视觉与模式识别会议, 2012年。

扩展功能

版本历史

在R2016a中引入

全部展开

不建议从R2019b开始

在未来的版本中改变行为