convolution3dLayer
描述
三维卷积层滑动立方卷积过滤器适用于三维输入。层可变输入通过移动沿着输入过滤器垂直,水平,以及沿深度,计算权重的点积和输入,然后添加一个偏差项。
层的尺寸可变取决于层输入:
3 d图像输入(数据与五个维度对应像素在三维空间中,通道,和观察),层可变空间维度。
3 d图像序列输入(数据和六个维度对应像素在三维空间中,通道,观察,和时间步长),层可变空间维度。
为二维图像序列输入(数据与五个维度对应像素在两维空间的通道,观察,和时间步长),可变层在空间和时间维度。
创建
描述
创建一个三维卷积层和设置层
= convolution3dLayer (filterSize
,numFilters
)FilterSize
和NumFilters
属性。
设置可选层
= convolution3dLayer (filterSize
,numFilters
,名称,值
)步
,DilationFactor
,NumChannels
,参数和初始化,学习速率、正规化,的名字
属性使用名称-值对。指定输入填充,使用“填充”
名称-值对的论点。例如,convolution3dLayer(11, 96,“大步”4“填充”,1)
创建一个三维卷积层96过滤器的大小(11 11 11)
的步伐(4 - 4)
,大小为1的填充层边缘的所有输入。您可以指定多个名称-值对。在单引号附上每个属性的名字。
输入参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:convolution3dLayer(16日“填充”,“相同”)
创建一个三维卷积与16层过滤器的大小(3 3 3)
和“相同”
填充。在训练时,软件计算和设置垫层的输出的大小具有相同的大小作为输入。
填充
- - - - - -输入边缘填充
0
(默认)|非负整数的数组|“相同”
输入边缘填充,指定为逗号分隔组成的“填充”
这些值之一:
“相同”
——添加填充大小计算软件的培训或预测时间,输出具有相同的大小作为输入时,步幅等于1。如果跨越大于1,那么输出大小装天花板(inputSize /步)
,在那里inputSize
高度,宽度,或输入和深度步
在相应的维度是进步。软件增加了相同数量的顶部和底部填充,左,右,和前后,如果可能的话。如果填充在给定维度有一个奇怪的价值,然后软件添加了额外的填充postpadding输入。换句话说,软件添加额外的垂直填充,额外的水平向右填充,和额外的深度填充的输入。非负整数
p
——添加填充的大小p
所有输入的边缘。三元素向量
(a b c)
非负整数的加衬垫的大小一个
顶部和底部填充的大小b
左和右,填充的大小c
正面和背面的输入。2×3矩阵
[t l f; b r k)
非负整数的加衬垫的大小t
前,b
底部,l
到左边,r
向右,f
前面,k
后面的输入。换句话说,第一行指定前置液和第二行定义了postpadding在三维空间中。
例子:“填充”,1
添加一行的顶部和底部填充,填充的一列左和右,和一个平面填充的前后输入。
例子:“填充”,“相同”
添加填充,这样输出具有相同的大小作为输入(如果步幅等于1)。
属性
三维卷积
FilterSize
- - - - - -高度、宽度和深度的过滤器
向量的三个正整数
高度、宽度和深度的过滤器,指定为一个向量[w h d]
三个正整数的h
的高度,w
是宽度,d
是深度。FilterSize
定义了局部区域的大小的神经元连接的输入。
创建层时,您可以指定FilterSize
作为标量使用相同的价值高度,宽度和深度。
例子:(5 5 5)
指定过滤器的高度、宽度和深度的5。
NumFilters
- - - - - -数量的过滤器
正整数
这个属性是只读的。
的过滤器,指定为一个正整数。这个号码对应的层神经元数量输入连接到同一个地区。这个参数决定渠道的数量(特征图)层的输出。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
步
- - - - - -步长为遍历输入
(1 1 1)
(默认)|向量的三个正整数
步长为遍历输入在三维空间中,指定为一个向量(a b c)
三个正整数的一个
是垂直的步长,b
是水平步长,c
是步长沿深度。创建层时,您可以指定步
使用相同的值作为标量一步大小在所有三个方向。
例子:(1 2 3)
指定一个垂直步长为2,水平3的步长和步长沿深度为1。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
DilationFactor
- - - - - -因素扩张卷积
(1 1 1)
(默认)|向量的三个正整数
因素扩张卷积(也称为深黑色的卷积),指定为一个向量[w h d]
三个正整数的h
是垂直扩张,w
横向扩张,d
是沿深度的扩张。创建层时,您可以指定DilationFactor
作为标量使用相同的值在所有三个方向扩张。
使用扩张增加接受域的卷积(该区域的输入层可以看到)的层不增加参数的数量或计算。
层扩展每个滤芯过滤器插入0之间。膨胀系数确定的步长采样滤波器的输入或等同于upsampling因素。它对应于一个有效的过滤的大小(过滤器的大小- 1)*膨胀系数+ 1。例如,3-by-3-by-3过滤器与扩张的因素(2 2 2)
相当于5-by-5-by-5过滤与0之间的元素。
例子:(1 2 3)
膨胀过滤器垂直的2倍,3倍水平,沿深度的1倍。
PaddingSize
- - - - - -大小的填充
(0 0 0;0 0 0)
(默认)|2×3矩阵的非负整数
大小的衬垫适用于输入边界,指定为2×3矩阵[t l f; b r k)
的非负整数t
和b
是应用于顶部和底部填充在垂直方向,l
和r
填充应用于水平方向的左和右,然后呢f
和k
是填充应用于前后沿深度。换句话说,第一行指定前置液和第二行定义了postpadding在三维空间中。
当您创建一个层,使用“填充”
名称-值对参数来指定填充大小。
例子:(1 2 4;1 2 4)
添加一行的顶部和底部填充,填充的两列左和右,和四架飞机填充前后的输入。
PaddingMode
- - - - - -方法来确定填充大小
“手动”
(默认)|“相同”
方法来确定填充大小,指定为“手动”
或“相同”
。
软件自动设置的值PaddingMode
基于“填充”值指定在创建一个层。
如果你设置
“填充”
选择一个标量或矢量的非负整数,那么软件自动设置PaddingMode
来“手动”
。如果你设置
“填充”
选项“相同”
,那么软件自动设置PaddingMode
来“相同”
和计算填充在训练时间的大小,输出具有相同的大小作为输入时,步幅等于1。如果跨越大于1,那么输出大小装天花板(inputSize /步)
,在那里inputSize
高度,宽度,或输入和深度步
在相应的维度是进步。软件增加了相同数量的顶部和底部填充,左,右,和前后,如果可能的话。如果填充在给定维度有一个奇怪的价值,然后软件添加了额外的填充postpadding输入。换句话说,软件添加额外的垂直填充,额外的水平向右填充,和额外的深度填充的输入。
PaddingValue
- - - - - -板数据值
0(默认)|标量|“symmetric-include-edge”
|“symmetric-exclude-edge”
|“复制”
板数据值,指定为以下之一:
PaddingValue |
描述 | 例子 |
---|---|---|
标量 | 垫与指定的标量值。 |
|
“symmetric-include-edge” |
垫使用镜像的输入值,包括边缘值。 |
|
“symmetric-exclude-edge” |
垫使用镜像的输入值,排除边缘值。 |
|
“复制” |
垫使用重复的边界元素的输入 |
|
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|字符
|字符串
NumChannels
- - - - - -数量的输入通道
“汽车”
(默认)|正整数
这个属性是只读的。
输入通道的数量,指定为以下之一:
“汽车”
——自动确定培训时间输入通道的数量。正整数——配置层指定数量的输入通道。
NumChannels
和的频道数层输入数据必须匹配。例如,如果输入是一个RGB图像NumChannels
必须是3。如果输入是输出的卷积和16层过滤器,然后NumChannels
必须是16。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|字符
|字符串
参数和初始化
WeightsInitializer
- - - - - -函数来初始化权重
“glorot”
(默认)|“他”
|“narrow-normal”
|“零”
|“的”
|函数处理
初始化权重函数,指定为以下之一:
“glorot”
——初始化权重Glorot初始值设定项[1](也称为Xavier初始化)。Glorot初始化样本独立均匀分布与零均值和方差2 / (numIn + numOut)
,在那里numIn = FilterSize (1) * FilterSize (2) * FilterSize (3) * NumChannels
和numOut = FilterSize (1) * FilterSize (2) * FilterSize (3) * NumFilters
。“他”
——初始化权重的初始值设定项[2]。他初始化样本正态分布与零均值和方差2 / numIn
,在那里numIn = FilterSize (1) * FilterSize (2) * FilterSize (3) * NumChannels
。“narrow-normal”
——初始化权重独立抽样从正态分布与零均值和标准偏差0.01。“零”
——初始化权重为零。“的”
——初始化权重的。函数处理——使用一个自定义函数初始化权重。如果你指定一个函数处理,那么必须表单的功能
重量= func(深圳)
,在那里深圳
权重的大小。例如,看到的指定自定义权重的初始化函数。
层只初始化时的重量权重
属性是空的。
数据类型:字符
|字符串
|function_handle
BiasInitializer
- - - - - -函数来初始化的偏见
“零”
(默认)|“narrow-normal”
|“的”
|函数处理
函数来初始化偏见,指定为以下之一:
“零”
——初始化与零偏差。“的”
——初始化偏见的。“narrow-normal”
——初始化倾向独立抽样从正态分布的均值为零,标准差为0.01。函数处理与一个自定义函数,初始化偏见。如果你指定一个函数处理,那么必须表单的功能
偏见= func(深圳)
,在那里深圳
偏差的大小。
层只初始化时的偏见偏见
属性是空的。
数据类型:字符
|字符串
|function_handle
权重
- - - - - -层的重量
[]
(默认)|数字数组
层权重卷积层,指定为数字数组。
层权重可学的参数。您可以指定权重的初始值直接使用权重
层的属性。当你训练一个网络,如果权重
属性层的非空的trainNetwork
使用权重
属性的初始值。如果权重
属性是空的,那么trainNetwork
使用指定的初始化程序WeightsInitializer
层的属性。
在培训时,权重
是一个FilterSize (1)
——- - - - - -FilterSize (2)
——- - - - - -FilterSize (3)
——- - - - - -NumChannels
——- - - - - -NumFilters
数组中。
数据类型:单
|双
偏见
- - - - - -层的偏见
[]
(默认)|数字数组
一层一层偏见的卷积,指定为一个数字数组。
层偏差是可学的参数。当你训练一个神经网络,如果偏见
非空的,那么trainNetwork
使用偏见
属性的初始值。如果偏见
是空的,然后trainNetwork
使用指定的初始化程序BiasInitializer
。
在培训时,偏见
是一个1-by-1-by-1-by——NumFilters
数组中。
数据类型:单
|双
学习速率、正规化
WeightLearnRateFactor
- - - - - -学习速率因子权重
1
(默认)|负的标量
学习速率因子权重,指定为负的标量。
软件由全球学习速率繁殖这个因素确定权重的学习速率这一层。例如,如果WeightLearnRateFactor
是2
,然后在这一层权值的学习速率是当前全球学习速率的两倍。全球学习速率决定了基于的软件设置您指定使用trainingOptions
函数。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
BiasLearnRateFactor
- - - - - -学习速率因子偏见
1
(默认)|负的标量
学习速率因子的偏见,指定为负的标量。
软件由全球学习速率繁殖这个因素来确定学习速率的偏见在这一层。例如,如果BiasLearnRateFactor
是2
,那么学习速率的偏见层是当前全球学习速率的两倍。全球学习速率决定了基于的软件设置您指定使用trainingOptions
函数。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
WeightL2Factor
- - - - - -l2正则化因子权重
1(默认)|负的标量
l2正则化因子权重,指定为负的标量。
全球的软件增加这个因素l2正则化因子来确定l2正则化这一层的权重。例如,如果WeightL2Factor
是2
,那么l2正则化这一层的权重是全球的两倍l2正则化因子。您可以指定全球l2正则化因子使用trainingOptions
函数。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
BiasL2Factor
- - - - - -l2正则化因子的偏见
0
(默认)|负的标量
l2正则化因子的偏见,指定为负的标量。
全球的软件增加这个因素l2正则化因子来确定l2在这一层正规化的偏见。例如,如果BiasL2Factor
是2
,那么l2正规化的偏见这一层是全球的两倍l2正则化因子。决定了全球的软件l2正则化因子的基础上,设置您指定使用trainingOptions
函数。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
层
的名字
- - - - - -层的名字
”
(默认)|特征向量|字符串标量
图层名称,指定为一个特征向量或字符串标量。为层
数组输入,trainNetwork
,assembleNetwork
,layerGraph
,dlnetwork
函数自动分配名称层的名称”
。
数据类型:字符
|字符串
NumInputs
- - - - - -输入数量
1
(默认)
这个属性是只读的。
输入层的数量。这一层只接受一个输入。
数据类型:双
InputNames
- - - - - -输入名字
{"在"}
(默认)
这个属性是只读的。
输入层的名称。这一层只接受一个输入。
数据类型:细胞
NumOutputs
- - - - - -数量的输出
1
(默认)
这个属性是只读的。
输出层的数量。这一层只有一个输出。
数据类型:双
OutputNames
- - - - - -输出的名字
{“出”}
(默认)
这个属性是只读的。
输出层的名称。这一层只有一个输出。
数据类型:细胞
例子
创建三维卷积层
创建一个三维卷积层16过滤器,每一个都有高度,宽度和深度的5。使用一个跨步(步长)在所有三个方向4。
16层= convolution3dLayer(5日,“步”4)
层= Convolution3DLayer属性:名称:“Hyperparameters FilterSize: [5 5 5] NumChannels:“汽车”NumFilters: 16步:[4 4 4]DilationFactor: [1 1 1] PaddingMode:“手动”PaddingSize: [2 x3双]PaddingValue: 0可学的参数权重:[]偏见:[]显示所有属性
包括三维卷积层中层
数组中。
层= […image3dInputLayer([28日28日28日3])convolution3dLayer(5日16日“步”4)reluLayer maxPooling3dLayer (2“步”4)fullyConnectedLayer (10) softmaxLayer classificationLayer]
层x1 = 7层阵列层:1“3 d图像输入28 x28x28x3图像zerocenter正常化2”三维卷积16 5 x5x5旋转与步(4 - 4)和填充(0 0 0;0 0 0]3”ReLU ReLU 4”3 d Max池2 x2x2马克斯池与步(4 - 4)和填充(0 0 0;10 0 0 0]5”完全连接完全连接层6”Softmax Softmax crossentropyex 7”分类输出
在三维卷积层指定初始重量和偏见
指定重量和偏见初始化函数,使用WeightsInitializer
和BiasInitializer
属性分别。直接指定重量和偏见,使用权重
和偏见
属性分别。
指定初始化函数
创建一个三维卷积与32层过滤器,每一个都有高度,宽度和深度的5。指定要他初始化权值初始化。
filterSize = 5;numFilters = 32;层= convolution3dLayer (filterSize numFilters,…“WeightsInitializer”,“他”)
层= Convolution3DLayer属性:名称:“Hyperparameters FilterSize: [5 5 5] NumChannels:“汽车”NumFilters: 32步:[1 1 1]DilationFactor: [1 1 1] PaddingMode:“手动”PaddingSize: [2 x3双]PaddingValue: 0可学的参数权重:[]偏见:[]显示所有属性
请注意,权重
和偏见
属性是空的。在训练时,软件初始化这些属性使用指定的初始化函数。
指定自定义初始化函数
指定自己的初始化函数的重量和偏见,设置WeightsInitializer
和BiasInitializer
属性函数处理。对于这些属性,指定函数句柄将重量和偏见的大小作为输入和输出初始化值。
创建一个卷积与32层过滤器,每一个都有高度,宽度和深度的5。指定初始化样本权重和偏见从高斯分布的标准偏差为0.0001。
filterSize = 5;numFilters = 32;层= convolution3dLayer (filterSize numFilters,…“WeightsInitializer”@兰德(深圳)* 0.0001(深圳),…“BiasInitializer”@(深圳)兰德(深圳)* 0.0001)
层= Convolution3DLayer属性:名称:“Hyperparameters FilterSize: [5 5 5] NumChannels:“汽车”NumFilters: 32步:[1 1 1]DilationFactor: [1 1 1] PaddingMode:“手动”PaddingSize: [2 x3双]PaddingValue: 0可学的参数权重:[]偏见:[]显示所有属性
再一次,权重
和偏见
属性是空的。在训练时,软件初始化这些属性使用指定的初始化函数。
直接指定重量和偏见
创建一个三维卷积层与彩色图像兼容。设置权重和偏见W
和b
在垫子上文件Conv3dWeights.mat
分别。
filterSize = 5;numFilters = 32;负载Conv3dWeights层= convolution3dLayer (filterSize numFilters,…“重量”W,…“偏见”,b)
层= Convolution3DLayer属性:名称:“Hyperparameters FilterSize: [5 5 5] NumChannels: 3 NumFilters: 32步:[1 1 1]DilationFactor: [1 1 1] PaddingMode:“手动”PaddingSize: [2 x3双]PaddingValue: 0可学的参数权重:[5 d双]偏见:[1 x1x1x32双]显示所有属性
在这里,权重
和偏见
属性包含指定值。在训练时,如果这些属性非空,则软件使用指定的值作为初始重量和偏见。在这种情况下,软件不使用初始化功能。
创建卷积层完全覆盖三维输入
假设输入的大小是28-by-28-by-28-by-1。创建一个三维卷积与16层过滤器,每个6的高度,宽度4和5的深度。在所有维度设置进步4。
确定卷积完全覆盖输入。对卷积完全覆盖输入,输出尺寸必须是整数。当没有扩张,我th输出尺寸计算(图象尺寸(我)- filterSize (我)+填充(我))/步(我)+ 1。
行输出尺寸的整数,两排需要填充:(28 - 6 + 2)/ 4 + 1 = 7。将填充对称通过添加一行的填充图像的顶部和底部。
垂直输出尺寸的整数,不需要填充:(28 - 4 + 0)/ 4 + 1 = 7。
深度输出维度的一个整数,一个填充面要求:(28 - 5 + 1)/ 4 + 1 = 7。你必须分发填充整个图像的前后不对称。这个例子添加一个平面填充的图像。
构造卷积层。指定“填充”
作为一个2×3矩阵。第一行指定前置液和第二行指定postpadding在三维空间中。
层= convolution3dLayer([6 4 5], 16日“步”4“填充”,(1 0 0;1 0 1))
层= Convolution3DLayer属性:名称:“Hyperparameters FilterSize: [6 4 5] NumChannels:“汽车”NumFilters: 16步:[4 4 4]DilationFactor: [1 1 1] PaddingMode:“手动”PaddingSize: [2 x3双]PaddingValue: 0可学的参数权重:[]偏见:[]显示所有属性
算法
三维卷积层
一个卷积层滑动卷积过滤器适用于输入。三维卷积的一层一层二维卷积的功能延伸至第三个维度,深度。层可变输入通过移动沿着输入过滤器垂直,水平,以及沿深度,计算权重的点积和输入,然后添加一个偏差项。欲了解更多,请看的定义卷积的层在convolution2dLayer
参考页面。
层的尺寸可变取决于层输入:
3 d图像输入(数据与五个维度对应像素在三维空间中,通道,和观察),层可变空间维度。
3 d图像序列输入(数据和六个维度对应像素在三维空间中,通道,观察,和时间步长),层可变空间维度。
为二维图像序列输入(数据与五个维度对应像素在两维空间的通道,观察,和时间步长),可变层在空间和时间维度。
层的输入和输出格式
层一层一层数组或图后续层传递数据格式化dlarray
对象。的格式dlarray
对象是一个字符串,其中每个字符描述相应的维度的数据。这些字符的格式由一个或多个:
“S”
——空间“C”
——频道“B”
——批“T”
——时间“U”
——未指明的
例如,二维图像数据表示成一个四维数组,第一个二维对应于图像的空间维度,第三维对应于图像的通道,第四个维度对应批维度,可以被描述为有格式“SSCB”
(空间、空间、通道、批)。
你可以与这些交互dlarray
对象等自动分化工作流开发一个自定义图层,使用functionLayer
对象,或使用向前
和预测
功能与dlnetwork
对象。
此表显示了支持输入格式万博1manbetxConvolution3DLayer
对象和相应的输出格式。如果输出层的传递给一个定制的层不继承nnet.layer.Formattable
类,或FunctionLayer
对象的Formattable
属性设置为0
(假),然后层接收未格式化dlarray
对象的尺寸要求相应的这个表的格式。
输入格式 | 输出格式 |
---|---|
|
|
|
|
|
|
在dlnetwork
对象,Convolution3DLayer
对象也支持这些输入和输出格万博1manbetx式的组合。
输入格式 | 输出格式 |
---|---|
|
|
|
|
|
|
引用
[1]Glorot,泽维尔,Yoshua Bengio。“理解的难度训练前馈神经网络。”在《十三人工智能国际会议上和统计,249 - 356。意大利撒丁岛:AISTATS, 2010。https://proceedings.mlr.press/v9/glorot10a/glorot10a.pdf
[2]他开明、象屿张任Shaoqing,剑太阳。“深深入整流器:超越人类表现ImageNet分类。”在学报2015年IEEE计算机视觉国际会议,1026 - 1034。华盛顿特区:IEEE计算机视觉的社会,2015年。https://doi.org/10.1109/ICCV.2015.123
版本历史
介绍了R2019a
Beispiel offnen
您有一张这本Beispiels geanderte版本。您这本Beispiel麻省理工学院古老Anderungen offnen吗?
MATLAB-Befehl
您有窗户的链接geklickt,汪汪汪der diesem MATLAB-Befehl entspricht:
在das MATLAB-Befehlsfenster Fuhren您窝Befehl军队Eingabe来自。浏览器unterstutzen MATLAB-Befehle。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。