transposedConv3dLayer
转置的三维卷积层
语法
描述
一个转置的三维卷积层对三维特征图进行采样。
这一层有时被错误地称为“反褶积”或“反褶积”层。这一层执行卷积的转置,而不执行反卷积。
返回一个3-D转置卷积层,并设置层
= transposedConv3dLayer (filterSize
,numFilters
)FilterSize
而且NumFilters
属性。
返回一个3-D转置卷积层,并使用一个或多个名值对参数指定其他选项。层
= transposedConv3dLayer (filterSize
,numFilters
,名称,值
)
例子
创建转置的三维卷积层
创建一个带有32个过滤器的转置三维卷积层,每个过滤器的高度、宽度和深度为11。在水平和垂直方向使用4步幅,在深度方向使用2步幅。
32层= transposedConv3dLayer(11日,“步”(4 4 2))
Name: " Hyperparameters FilterSize: [11 11 11] NumChannels: 'auto' NumFilters: 32 Stride: [4 4 2] CroppingMode: 'manual' CroppingSize: [2x3 double]可学习参数Weights: [] Bias:[]显示所有属性
输入参数
filterSize
- - - - - -过滤器的高度,宽度和深度
正整数|三个正整数的向量
过滤器的高度、宽度和深度,指定为正整数或三个正整数的向量[w h d]
,在那里h
的高度,w
是宽度,和d
是深度。过滤器大小定义了输入中神经元连接到的局部区域的大小。
如果filterSize
是标量,则软件对所有三个维度使用相同的值。
例子:(5 6 7)
指定高度、宽度和深度为的筛选器5
,6
,7
分别。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
numFilters
- - - - - -数量的过滤器
正整数
筛选器的数目,指定为正整数。这个数字对应于该层中连接到输入中同一区域的神经元数量。这个参数决定了该层输出的通道(特征映射)的数量。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:transposedConv3dLayer(11, 96,“步”,4)
创建了一个3-D的转置卷积层,有96个大小为11,步幅为4的过滤器。
步
- - - - - -遍历输入的步长
(1 1 1)
(默认)|三个正整数的向量
在三维中遍历输入的步长,指定为向量(a b c)
三个正整数的一个
是竖直步长,b
是水平步长,和c
是沿着深度的步长。在创建层时,您可以指定步
作为一个标量,在所有三个方向上使用相同的步长值。
例子:(1 2 3)
指定垂直步长为2,水平步长为3,沿深度为1的步长。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
裁剪
- - - - - -减少输出尺寸
0
(默认)|“相同”
|非负整数的向量|非负整数的矩阵
输出尺寸减小,指定为以下之一:
“相同”
-设置裁剪,使输出大小等于inputSize。*步
,在那里inputSize
是输入层的高度、宽度和深度。如果你设置裁剪
选项“相同”
,然后软件自动设置CroppingMode
属性的层“相同”
.如果可能的话,软件会从顶部和底部、左侧和右侧、正面和背面修剪等量的头发。如果垂直裁剪量的值为奇数,那么软件将从底部裁剪额外的一行。如果水平裁剪量的值为奇数,那么该软件将从右侧裁剪额外的一列。如果深度裁剪量为奇数,则软件从后面裁剪一个额外的平面。
正整数——从所有边中裁剪指定数量的数据。
非负整数的向量
(a b c)
——作物一个
从顶部和底部,裁剪b
从左到右,然后修剪c
从前面和后面。非负整数的矩阵
[t l f;b r bk)
的非负整数-裁剪t
,l
,f
,b
,r
,汉堡王
分别从输入的上、左、前、下、右和后。
如果你设置裁剪
选项设置为数值,然后软件自动设置CroppingMode
属性的层“手动”
.
例子:[1 2 2]
数据类型:单
|双
|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”
-使用gloot初始化器初始化权重[1](也称为Xavier初始化器)。gloria初始化器从均值和方差为零的均匀分布中独立采样2 / (numIn + numOut)
,在那里numIn = FilterSize (1) * FilterSize (2) * FilterSize (3) * NumChannels
而且numOut = FilterSize (1) * FilterSize (2) * FilterSize (3) * NumFilters
.“他”
-使用He初始化器初始化权重[2].He初始化器样本来自均值和方差为零的正态分布2 / numIn
,在那里numIn = FilterSize (1) * FilterSize (2) * FilterSize (3) * NumChannels
.“narrow-normal”
-通过从均值为零、标准差为0.01的正态分布中独立抽样初始化权重。“零”
-用0初始化权值。“的”
-用1初始化权重。函数句柄——使用自定义函数初始化权重。如果指定了函数句柄,则该函数必须具有以下形式
重量= func(深圳)
,在那里深圳
是重量的大小。示例请参见指定自定义权重初始化函数.
时,该层才初始化权重权重
属性是空的。
数据类型:字符
|字符串
|function_handle
BiasInitializer
- - - - - -函数初始化偏置
“零”
(默认)|“narrow-normal”
|“的”
|函数处理
函数初始化偏移量,指定为以下之一:
“零”
-初始偏差为零。“的”
-初始偏差为1。“narrow-normal”
-通过从均值为零、标准差为0.01的正态分布中独立采样来初始化偏差。函数句柄——使用自定义函数初始化偏置。如果指定了函数句柄,则该函数必须具有以下形式
偏见= func(深圳)
,在那里深圳
是偏差的大小。
该层仅在偏见
属性是空的。
数据类型:字符
|字符串
|function_handle
权重
- - - - - -层的重量
[]
(默认)|数字数组
用于转置卷积操作的层权值,指定为aFilterSize (1)
——- - - - - -FilterSize (2)
——- - - - - -FilterSize (3)
——- - - - - -numFilters
——- - - - - -NumChannels
数字数组或[]
.
层权值是可学习的参数。方法可以直接指定权重的初始值权重
层的属性。当你训练一个网络时,如果权重
属性为非空,则trainNetwork
使用权重
属性作为初始值。如果权重
那么,财产是空的trainNetwork
类指定的初始化式WeightsInitializer
层的属性。
数据类型:单
|双
偏见
- - - - - -层的偏见
[]
(默认)|数字数组
用于转置卷积运算的层偏差,指定为1 × 1 × 1 × -numFilters
数字数组或[]
.
层偏差是可学习的参数。当你训练一个网络时,如果偏见
非空的,那么trainNetwork
使用偏见
属性作为初始值。如果偏见
是空的,然后trainNetwork
使用指定的初始化式BiasInitializer
.
数据类型:单
|双
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
函数自动为具有此名称的层分配名称”
.
数据类型:字符
|字符串
输出参数
层
-转置三维卷积层
TransposedConvolution3DLayer
对象
转置的三维卷积层,返回为TransposedConvolution3dLayer
对象。
算法
三维转置卷积层
一个转置的三维卷积层对三维特征图进行采样。
的标准卷积操作downsamples通过对输入应用滑动卷积滤波器来实现输入。通过将输入和输出扁平化,可以将卷积运算表示为 对于卷积矩阵C和偏见向量B这可以从层权重和偏差中推导出来。
类似地,转置卷积操作upsamples通过对输入应用滑动卷积滤波器来实现输入。为了对输入进行上采样而不是使用滑动滤波器进行下采样,该层对输入的每条边进行零填充,填充的大小为相应的滤波器边大小减1。
通过将输入和输出压扁,转置卷积运算等价于 ,在那里C而且B分别表示由层权值和层偏差导出的标准卷积的卷积矩阵和偏差向量。这个操作相当于标准卷积层的后向函数。
参考文献
格洛罗,泽维尔和约舒亚·本吉奥。《理解训练深度前馈神经网络的困难》在第十三届人工智能与统计学国际会议论文集, 249 - 356。撒丁岛,意大利:AISTATS, 2010。
何凯明,张翔宇,任少卿,孙健。深入研究整流器:在ImageNet分类上超越人类水平的性能。在2015年IEEE计算机视觉国际会议论文集, 1026 - 1034。华盛顿:IEEE计算机视觉学会,2015。
版本历史
介绍了R2019a
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。