TransposedConvolution2DLayer
转置二维卷积层
描述
一层转置二维卷积upsamples二维特征图。
这一层有时被错误地称为“反褶积”或“deconv”层。这一层是卷积的转置和不执行反褶积。
创建
创建一个转置卷积二维层使用transposedConv2dLayer
。
属性
转置卷积
FilterSize
- - - - - -高度和宽度的过滤器
向量的两个正整数
高度和宽度的过滤器,指定为一个向量的两个正整数[w h]
,在那里h
是身高和w
是宽度。FilterSize
定义了局部区域的大小的神经元连接的输入。
如果你设置FilterSize
使用一个输入参数,那么您可以指定FilterSize
作为维标量使用相同的值。
例子:5 [5]
指定过滤器的高度和宽度5。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
NumFilters
- - - - - -数量的过滤器
正整数
这个属性是只读的。
的过滤器,指定为一个正整数。这个号码对应的层神经元数量输入连接到同一个地区。这个参数决定渠道的数量(特征图)层的输出。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
步
- - - - - -步长为遍历输入
[1]
(默认)|向量的两个正整数
步长为遍历输入垂直和水平,指定为一个向量[b]
两个正整数的一个
垂直步长和吗b
是水平的步长。创建层时,您可以指定步
作为标量为两步使用相同的价值大小。
例子:3 [2]
指定一个垂直的步长2和3的水平步长。
CroppingMode
- - - - - -方法来确定种植规模
“手动”
(默认)|“相同”
方法来确定种植规模,指定为“手动”
或相同。
软件自动设置的值CroppingMode
基于“种植”
值指定在创建层。
如果你设置
裁剪
选择一个数值,然后软件自动设置CroppingMode
层的属性“手动”
。如果你设置
“种植”
选项“相同”
,那么软件自动设置CroppingMode
层的属性“相同”
并设置裁剪输出尺寸=inputSize。*步
,在那里inputSize
输入层的高度和宽度。
指定种植规模、使用“种植”
选择transposedConv2dLayer
。
CroppingSize
- - - - - -减少输出尺寸
[0 0 0 0]
(默认)|向量的四个非负整数
输出尺寸减少,指定为一个向量的四个非负整数[t b l r]
,在那里t
,b
,l
,r
是作物从顶部,底部,左,和正确的。
手动指定种植规模,使用“种植”
选择transposedConv2dLayer
。
例子:[0 1 0 1]
裁剪
- - - - - -减少输出尺寸
[0 0]
(默认)|向量的两个非负整数
请注意
裁剪
财产将在未来的版本中被删除。使用CroppingSize
代替。手动指定种植规模,使用“种植”
选择transposedConv2dLayer
。
输出尺寸减少,指定为一个矢量的两个非负整数[b]
,在那里一个
对应于从顶部和底部和裁剪b
对应于左和右的裁剪。
手动指定种植规模,使用“种植”
选择transposedConv2dLayer
。
例子:[0 1]
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) * NumChannels
和numOut = FilterSize (1) * FilterSize (2) * NumFilters
。“他”
——初始化权重的初始值设定项[2]。他初始化样本正态分布与零均值和方差2 / numIn
,在那里numIn = FilterSize (1) * FilterSize (2) * NumChannels
。“narrow-normal”
——初始化权重独立抽样从正态分布与零均值和标准偏差0.01。“零”
——初始化权重为零。“的”
——初始化权重的。函数处理——使用一个自定义函数初始化权重。如果你指定一个函数处理,那么必须表单的功能
重量= func(深圳)
,在那里深圳
权重的大小。例如,看到的指定自定义权重的初始化函数。
层只初始化时的重量权重
属性是空的。
数据类型:字符
|字符串
|function_handle
BiasInitializer
- - - - - -函数来初始化倾向
“零”
(默认)|“narrow-normal”
|“的”
|函数处理
函数初始化倾向,指定为以下之一:
“零”
——初始化与零偏差。“的”
——初始化倾向。“narrow-normal”
——初始化倾向独立抽样从正态分布的均值为零,标准差为0.01。函数处理与自定义函数——初始化倾向。如果你指定一个函数处理,那么必须表单的功能
偏见= func(深圳)
,在那里深圳
偏差的大小。
层时才初始化倾向偏见
属性是空的。
数据类型:字符
|字符串
|function_handle
权重
- - - - - -层的重量
[]
(默认)|数字数组
层权重卷积层,指定为一个FilterSize (1)
——- - - - - -FilterSize (2)
——- - - - - -NumFilters
——- - - - - -NumChannels
数组中。
层权重可学的参数。您可以指定权重的初始值直接使用权重
层的属性。当你训练一个网络,如果权重
属性层的非空的trainNetwork
使用权重
属性的初始值。如果权重
属性是空的,那么trainNetwork
使用指定的初始化程序WeightsInitializer
层的属性。
数据类型:单
|双
偏见
- - - - - -层的偏见
[]
(默认)|数字数组
一层一层偏见的卷积,指定为一个数字数组。
层偏差是可学的参数。当你训练一个网络,如果偏见
非空的,那么trainNetwork
使用偏见
属性的初始值。如果偏见
是空的,然后trainNetwork
使用指定的初始化程序BiasInitializer
。
在培训时,偏见
是一个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
- - - - - -输出的名字
{“出”}
(默认)
这个属性是只读的。
输出层的名称。这一层只有一个输出。
数据类型:细胞
例子
算法
二维转置卷积层
一层转置二维卷积upsamples二维特征图。
的标准卷积操作downsamples输入采用滑动卷积过滤器的输入。通过压扁的输入和输出,可以表达卷积操作 卷积矩阵C和偏见向量B可以来源于层重量和偏见。
类似地,转置卷积操作upsamples输入采用滑动卷积过滤器的输入。upsample输入而不是使用滑动过滤器,将采样输入的层在每条边的大小与填充相应的滤波器边缘大小- 1。
通过输入和输出压平,相当于转置卷积操作 ,在那里C和B表示卷积矩阵和标准偏差向量卷积来源于层重量和偏见,分别。这个操作相当于标准卷积的反向功能层。
这张图片显示了一个4×4滤波器upsampling 2×2的输入。较低的地图代表输入和上面的地图代表输出。1
引用
[1]Glorot,泽维尔,Yoshua Bengio。“理解的难度训练前馈神经网络。”In《十三人工智能国际会议上和统计,249 - 356。意大利撒丁岛:AISTATS, 2010。
[2]他开明、象屿张任Shaoqing,剑太阳。“深深入整流器:超越人类表现ImageNet分类。”In学报2015年IEEE计算机视觉国际会议,1026 - 1034。华盛顿特区:IEEE计算机视觉的社会,2015年。
版本历史
介绍了R2017bR2019a:默认初始化权重Glorot
从R2019a开始,软件,默认情况下,初始化层使用Glorot初始化这一层的权重。这种行为可以帮助稳定培训和通常减少深层网络的训练时间。
在以前的版本中,软件,默认情况下,初始化层的抽样权重0.01零均值和方差的正态分布。复制这种行为,设置“WeightsInitializer”
层的选项“narrow-normal”
。
R2019a:裁剪
的属性TransposedConvolution2DLayer
将被删除
裁剪
的属性TransposedConvolution2DLayer
将被删除,使用CroppingSize
代替。更新你的代码,替换所有的实例裁剪
财产与CroppingSize
。
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。