3-D卷积层
三维卷积层将滑动立方卷积滤波器应用于三维输入。该层通过沿输入垂直、水平和深度移动滤波器,计算权重和输入的点积,然后添加偏差项,对输入进行卷积。
创建一个三维卷积层,并设置层
= convolution3dLayer (filterSize
,numFilters
)FilterSize
和NumFilters
属性。
设置可选层
= convolution3dLayer (filterSize
,numFilters
,名称,值
)步行
,DilationFactor
,NumChannels
,参数和初始化,学习率和正规化,的名字
使用名称-值对的属性。要指定输入填充,使用'填充'
名称-值对的论点。例如,convolution3dLayer(11, 96,“大步”4“填充”,1)
创建一个带有96个滤镜大小的3d卷积层(11 11 11)
一大步[4 4 4]
,以及沿图层输入的所有边缘大小为1的填充。可以指定多个名称-值对。将每个属性名用单引号括起来。
使用逗号分隔的name-value对参数指定填充的大小,以沿着图层的边缘添加或设置步行
,DilationFactor
,NumChannels
,参数和初始化,学习率和正规化,的名字
属性。用单引号附上名称。
convolution3dLayer(16日“填充”,“相同”)
创建一个带有16个滤镜的3d卷积层(3 3 3)
和“相同”
填充。在训练时,软件计算并设置填充的大小,使层输出的大小与输入的大小相同。
填充
- - - - - -输入边缘填充0
(默认)|非负整数数组|“相同”
输入边填充,指定为逗号分隔对,由'填充'
其中一个价值观是:
“相同”
-增加软件在训练或预测时计算的大小填充,使步幅等于1时输出的大小与输入的大小相同。如果步幅大于1,则输出大小为装天花板(inputSize /步)
, 在哪里输入
输入和的高度、宽度或深度是多少步
为相应维度的步幅。如果可能的话,软件会在顶部和底部、左边和右边、前面和后面添加相同数量的填充。如果给定维度中的填充具有奇数值,则软件将额外的填充添加到输入中作为延迟添加。换句话说,该软件在底部增加了额外的垂直填充,在右侧增加了额外的水平填充,在输入的背面增加了额外的深度填充。
非负整数p
-添加大小填充p
到输入的所有边。
三元素向量(a b c)
非负整数-添加大小填充一个
到顶部和底部,填充大小b
左右,大小的填充c
到输入的前后。
2×3矩阵[t l f; b r k]
非负整数-添加大小填充t
前,b
至底部,l
到左边,r
向右,f
到前面去,然后k
到输入的后面。换句话说,第一行指定了预添加,第二行定义了三个维度中的延迟添加。
例子:'填充',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的步长。
DilationFactor
- - - - - -扩张卷积的因子(1 1 1)
(默认)|三个正整数的向量扩展卷积的因子(也称为无卷积),指定为矢量[w h d]
三个正整数,其中h
为垂直膨胀,w
是水平扩张,和d
是沿深度的膨胀。在创建图层时,可以指定DilationFactor
作为标量,在所有三个方向上使用相同的膨胀值。
使用扩展卷积来增加层的接受域(层可以看到的输入区域),而不增加参数或计算的数量。
该层通过在每个过滤器元素之间插入零来扩展过滤器。膨胀因子决定了对输入采样的步长或等效滤波器的上采样因子。它对应的有效过滤器尺寸为(过滤器的大小- 1) *膨胀系数+ 1。例如,一个带有膨胀系数的3 × 3 × 3滤波器(2 2 2)
相当于一个元素之间为零的5 × 5 × 5滤波器。
例子:(1 2 3)
将滤镜垂直放大2倍,水平放大3倍,沿深度放大1倍。
PaddingSize
- - - - - -大小的填充[0 0 0;0 0 0]
(默认)|非负整数的2-by-3矩阵应用于输入边框的填充大小,指定为2 × 3矩阵[t l f; b r k]
对于非负整数,其中t
和b
是否在垂直方向上应用于顶部和底部的填充,l
和r
在水平方向上,填充是否应用于左边和右边f
和k
是否沿深度将填充物应用到前面和后面。换句话说,第一行指定了预添加,第二行定义了三个维度中的延迟添加。
当你创建一个图层时,使用'填充'
名称值对参数指定填充大小。
例子:[1 2 4;1 2 4]
在输入的顶部和底部添加一行填充,在左边和右边添加两列填充,在输入的前面和后面添加四个填充平面。
PaddingMode
- - - - - -确定填充大小的方法“手动”
(默认)|“相同”
确定填充大小的方法,指定为“手动”
或“相同”
.
软件会自动设置值PaddingMode
基于你在创建图层时指定的“填充”值。
如果你设置'填充'
选项为标量或非负整数向量,则软件自动设置PaddingMode
来“手动”
.
如果你设置'填充'
选项“相同”
,则软件自动设定PaddingMode
来“相同”
并计算训练时填充的大小,使stride等于1时输出的大小与输入的大小相同。如果步幅大于1,则输出大小为装天花板(inputSize /步)
, 在哪里输入
输入和的高度、宽度或深度是多少步
为相应维度的步幅。如果可能的话,软件会在顶部和底部、左边和右边、前面和后面添加相同数量的填充。如果给定维度中的填充具有奇数值,则软件将额外的填充添加到输入中作为延迟添加。换句话说,该软件在底部增加了额外的垂直填充,在右侧增加了额外的水平填充,在输入的背面增加了额外的深度填充。
PaddingValue
- - - - - -值到填充数据“symmetric-include-edge”
|“symmetric-exclude-edge”
|“复制”
值来填充数据,指定为以下其中之一:
PaddingValue |
描述 | 例子 |
---|---|---|
标量 | 用指定的标量值填充。 |
|
“symmetric-include-edge” |
焊盘使用输入的镜像值,包括边缘值。 |
|
“symmetric-exclude-edge” |
使用镜像输入值(不包括边值)的Pad。 |
|
“复制” |
使用输入的重复边框元素填充 |
|
数据类型:单
|双倍的
|int8
|int16
|INT32.
|INT64.
|uint8.
|uint16
|UINT32.
|uint64
|char
|细绳
NumChannels
- - - - - -每个滤波器的通道数“汽车”
(默认)|正整数每个滤波器的通道数,指定为“汽车”
或正整数。
这个参数总是等于卷积层的输入信道数。例如,如果输入是彩色图像,则输入的通道数为3。如果当前层之前卷积层的滤波器数为16,则当前层的通道数为16。
如果NumChannels
是“汽车”
,然后软件在培训时确定通道的数量。
例子:256
WeightsInitializer
- - - - - -函数初始化权重“glorot”
(默认)|“他”
|“narrow-normal”
|“零”
|“的”
|函数处理初始化权重的功能,指定为以下之一:
“glorot”
-使用gloria初始化器初始化权重[1](也称为Xavier初始化器)。格洛特初始化器从均值和方差均为零的均匀分布中独立抽样2 / (numIn + numOut)
, 在哪里numIn = FilterSize (1) * FilterSize (2) * FilterSize (3) * NumChannels
和numOut = FilterSize (1) * FilterSize (2) * FilterSize (3) * NumFilters
.
“他”
-使用He初始化器初始化权值[2].他初始化来自正常分布的样本,零均值和方差2 / numIn
, 在哪里numIn = FilterSize (1) * FilterSize (2) * FilterSize (3) * NumChannels
.
“narrow-normal”
- 通过独立从正常分布采样,零平均值和标准偏差0.01,通过自主分布初始化权重。
“零”
—初始化权值为0。
“的”
—使用“1”初始化权重。
函数句柄——用自定义函数初始化权重。如果指定函数句柄,则该函数必须是这种形式的重量= func(深圳)
, 在哪里深圳
是重量的大小。例如,看到指定自定义权重初始化函数.
属性时,层才初始化权重权重
属性是空的。
数据类型:char
|细绳
|function_handle
BiasInitializer
- - - - - -函数初始化偏差“零”
(默认)|“narrow-normal”
|“的”
|函数处理函数初始化偏差,指定为以下任意一个:
“零”
- 用零初始化偏差。
“的”
-用1初始化偏差。
“narrow-normal”
- 通过从正常分布的独立采样,零平均值和标准偏差0.01来初始化偏置。
函数句柄——用自定义函数初始化偏差。如果指定函数句柄,则该函数必须是这种形式的偏见= func(深圳)
, 在哪里深圳
是偏差的大小。
该层仅在偏见
属性是空的。
数据类型:char
|细绳
|function_handle
权重
- - - - - -层重量[]
(默认)|数字数组卷积层的层权重指定为数字数组。
层权值是可学习的参数。属性可以直接指定权重的初始值权重
属性的层。当你训练一个网络,如果权重
属性为非空,则trainNetwork
使用权重
属性作为初始值。如果权重
属性为空trainNetwork
属性指定的初始化式WeightsInitializer
属性的层。
在培训时,权重
是A.过滤(1)
-经过-FilterSize (2)
-经过-FilterSize (3)
-经过-NumChannels
-经过-NumFilters
数组中。
数据类型:单
|双倍的
偏见
- - - - - -层的偏见[]
(默认)|数字数组卷积层的层偏置,指定为数字阵列。
层偏差是可学习的参数。当你训练一个网络,如果偏见
非空的,那么trainNetwork
使用偏见
属性作为初始值。如果偏见
是空的,然后trainNetwork
使用指定的初始化式BiasInitializer
.
在培训时,偏见
是一个1-1×1的 -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权重的正则化因子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.
函数自动为层分配名称的名字
设置为''
.
数据类型:char
|细绳
numinputs.
- - - - - -输入数量1
(默认)此属性是只读的。
层的输入数。这一层只接受单个输入。
数据类型:双倍的
InputNames
- - - - - -输入名称{'在'}
(默认)此属性是只读的。
输入层名。这一层只接受单个输入。
数据类型:细胞
NumOutputs
- - - - - -数量的输出1
(默认)此属性是只读的。
层输出的数量。这一层只有一个输出。
数据类型:双倍的
OutputNames
- - - - - -输出的名字{“出”}
(默认)此属性是只读的。
输出层的名称。这一层只有一个输出。
数据类型:细胞
创建一个带16个过滤器的3-D卷积层,每个滤波器高,宽度和深度为5.在所有三个方向上使用4的步幅(步长)。
16层= convolution3dLayer(5日,“步”4)
Tillay =具有属性的卷积3dlayer:'''''Quand参数过滤:[5 5] NumChannels:'Auto'NumFilters:16步(3 4 4)DilationFactor:[1 1] PaddingMode:'手动'拼接:[2x3双] PaddingValue:0可学习参数权重:[]偏置:[]显示所有属性
包含一个3-D卷积层层
数组中。
层= [...image3dInputLayer([28 28 28 3])“步”4) reluLayer maxPooling3dLayer (2“步”,4) softmaxLayer (10) softmaxLayer classificationLayer
图层= 7x1层阵列,具有图层:1''3-D图像输入28x28x28x3图像,具有“Zerocenter”归一化2''''卷积16 5x5x5卷曲的卷程[4 4 4]和填充[0 0 0;0 0 0] 3''Relu Relu 4''3-D最大池2x2x2 max汇集步进[4 4 4]和填充[0 0 0;0 0 0] 5''完全连接的10完全连接的第6层'Softmax Softmax 7''分类输出Crossentropyex
要指定权重和偏差初始化式函数,请使用WeightsInitializer
和BiasInitializer
属性分别。要直接指定权重和偏差,请使用权重
和偏见
属性分别。
指定初始化函数
创建一个带有32个滤镜的3d卷积层,每个滤镜的高度、宽度和深度都为5。将权重初始化式指定为He初始化式。
filterSize = 5;numFilters = 32;层= convolution3dLayer (filterSize numFilters,...“WeightsInitializer”,“他”)
layer = Convolution3DLayer with properties: Name: " Hyperparameters FilterSize: [5 5 5] NumChannels: 'auto' NumFilters: 32 Stride: [1 1 1] DilationFactor: [1 1 1] PaddingMode: 'manual' PaddingSize: [2x3 double] PaddingValue: 0 Learnable Parameters Weights: [] Bias:[]显示所有属性
请注意,权重
和偏见
属性是空的。在培训时,软件使用指定的初始化函数初始化这些属性。
指定自定义初始化函数
要为权重和偏差指定自己的初始化函数,请设置WeightsInitializer
和BiasInitializer
属性设置为函数句柄。对于这些属性,指定将权重和偏差的大小作为输入和输出初始化值的函数句柄。
创建一个带有32个滤镜的卷积层,每个滤镜的高度,宽度和深度都为5。指定初始化器,从标准偏差为0.0001的高斯分布中采样权重和偏差。
filterSize = 5;numFilters = 32;层= convolution3dLayer (filterSize numFilters,...“WeightsInitializer”, @(sz) rand(sz) * 0.0001,...“BiasInitializer”, @(sz) rand(sz) * 0.0001)
layer = Convolution3DLayer with properties: Name: " Hyperparameters FilterSize: [5 5 5] NumChannels: 'auto' NumFilters: 32 Stride: [1 1 1] DilationFactor: [1 1 1] PaddingMode: 'manual' PaddingSize: [2x3 double] PaddingValue: 0 Learnable Parameters Weights: [] Bias:[]显示所有属性
再一次,权重
和偏见
属性是空的。在培训时,软件使用指定的初始化函数初始化这些属性。
直接指定权重和偏差
创建一个与彩色图像兼容的三维卷积层。设置权重和偏差为W
和b
在MAT文件中conv3dweights.mat
分别。
filterSize = 5;numFilters = 32;负载Conv3dWeights层= convolution3dLayer (filterSize numFilters,...“重量”W,...'偏见', b)
layer = Convolution3DLayer with properties: Name: " Hyperparameters FilterSize: [5 5 5] NumChannels: 3 NumFilters: 32 Stride: [1 1 1] DilationFactor: [1 1 1] PaddingMode: 'manual' PaddingSize: [2x3 double] PaddingValue: 0 Learnable Parameters Weights: [5- d double] Bias: [1x1x1x32 double]显示所有属性
在这里,权重
和偏见
属性包含指定的值。在训练时,如果这些属性是非空的,则软件使用指定的值作为初始权值和偏差。在这种情况下,软件不使用初始化函数。
假设输入的大小是28 × 28 × 28 × 1。创建一个带有16个滤镜的3d卷积层,每个滤镜的高度为6,宽度为4,深度为5。将所有维度的步幅设置为4。
确保卷积完全覆盖输入。为了使卷积完全覆盖输入,输出维数必须是整数。当没有扩张时我输出维度计算为我) - filterSize (我) +填充(我)) /步(我) + 1。
如果水平输出尺寸为整数,则需要两行填充:(28 - 6 + 2)/4 + 1 = 7。通过在图像的顶部和底部添加一行填充对称地分布填充。
如果垂直输出尺寸为整数,则不需要填充:(28 - 4+ 0)/4 + 1 = 7。
如果深度输出尺寸为整数,则需要一个填充平面:(28 - 5 + 1)/4 + 1 = 7。你必须在图像的正面和背面不对称地分布填充。这个例子在图像的后面添加了一个填充平面。
构建卷积层。指定'填充'
作为一个2×3矩阵。第一行指定预先添加,第二行指定三个维度中的后覆。
layer = convolution3dLayer([6 4 5],16,“步”4'填充',[1 0 0;1 0 1])
layer = Convolution3DLayer with properties: Name: " Hyperparameters FilterSize: [6 4 5] NumChannels: 'auto' NumFilters: 16 Stride: [4 4 4] DilationFactor: [1 1 1] PaddingMode: 'manual' PaddingSize: [2x3 double] PaddingValue: 0 Learnable Parameters Weights: [] Bias:[]显示所有属性
卷积层将滑动卷积滤波器应用于输入。3-D卷积层将2-D卷积层的功能扩展到3维深度。该层通过沿输入垂直、水平和深度移动滤波器,计算权重和输入的点积,然后添加偏差项,对输入进行卷积。要了解更多,请看定义卷积的层在convolution2dLayer
参考页面。
[1] Glorot,Xavier和Yoshua Bengio。“了解训练深馈神经网络的难度。”在第十三届国际人工智能和统计会议论文集, 249 - 356。撒丁岛,意大利:AISTATS, 2010。
何开明,张翔宇,任少青,孙健深入研究整流器:在图像网分类上超越人类水平的表现。在2015 IEEE计算机视觉国际会议论文集,1026-1034。华盛顿特区:IEEE计算机视觉协会,2015年。
次のMATLABコマンドに対応するリンクがクリックされました。
コマンドをmatlabコマンドウィンドウににに力
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。