主要内容

transposedConv2dLayer

转置二维卷积层

描述

一层转置二维卷积upsamples二维特征图。

这一层有时被错误地称为“反褶积”或“deconv”层。这一层执行卷积的转置和不执行反褶积。

= transposedConv2dLayer (filterSize,numFilters)返回一个二维卷积转置层和设置FilterSizeNumFilters属性。

例子

= transposedConv2dLayer (filterSize,numFilters,名称,值)返回一个二维转置卷积层和指定附加选项使用一个或多个名称-值对参数。

例子

全部折叠

与96年创建一个转置卷积层过滤器,每个11的高度和宽度。使用4在水平和垂直方向上的步伐。

96年层= transposedConv2dLayer(11日“步”4);

输入参数

全部折叠

高度和宽度的过滤器,指定为一个正整数或一个向量的两个正整数[w h],在那里h是身高和w是宽度。过滤器尺寸的大小定义本地区域的神经元连接的输入。

如果filterSize是一个正整数,那么软件都使用相同的价值维度。

例子:(5 - 6)指定过滤器的高度和宽度56,分别。

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

的过滤器,指定为一个正整数。这个号码对应的层神经元数量输入连接到同一个地区。这个参数决定渠道的数量(特征图谱)的输出层。

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

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:transposedConv2dLayer(11, 96,“步”,4)创建一个二维转置卷积层96过滤器的大小11和4的步伐。

转置卷积

全部折叠

Up-sampling因素的输入,指定为以下之一:

  • 一个向量的两个正整数[b],在那里一个垂直步吗b是水平的步伐。

  • 一个正整数对应的垂直和水平的步伐。

例子:“步”,[2 1]

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

输出尺寸减少,指定为以下之一:

  • “相同”——集种植,这样输出大小=inputSize。*步,在那里inputSize输入层的高度和宽度。如果你设置裁剪选项“相同”,那么软件自动设置CroppingMode层的属性“相同”

    软件从顶部和底部修剪等量,左和右,如果可能的话。如果垂直作物有一个奇怪的价值,那么软件从底部去掉一个额外的行。如果有一个奇怪的价值水平作物金额,然后软件从右边去掉一个额外的列。

  • 一个正整数,作物从所有的边指定数量的数据。

  • 一个向量的非负整数[b]——作物一个从顶部和底部和作物b从左和右。

  • 一个向量[t b l r]——作物t,b,l,r从上、下、左、右的输入,分别。

如果你设置裁剪选择一个数值,然后软件自动设置CroppingMode层的属性“手动”

例子:(1 2)

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

输入通道的数量,指定为以下之一:

  • “汽车”——自动确定培训时间输入通道的数量。

  • 正整数——配置层指定数量的输入通道。NumChannels和的频道数层输入数据必须匹配。例如,如果输入是一个RGB图像NumChannels必须是3。如果输入是输出的卷积和16层过滤器,然后NumChannels必须是16。

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

参数和初始化

全部折叠

初始化权重函数,指定为以下之一:

  • “glorot”——初始化权重Glorot初始值设定项[1](也称为Xavier初始化)。Glorot初始化样本独立均匀分布与零均值和方差2 / (numIn + numOut),在那里numIn = FilterSize (1) * FilterSize (2) * NumChannelsnumOut = FilterSize (1) * FilterSize (2) * NumFilters

  • “他”——初始化权重的初始值设定项[2]。他初始化样本正态分布与零均值和方差2 / numIn,在那里numIn = FilterSize (1) * FilterSize (2) * NumChannels

  • “narrow-normal”——初始化权重独立抽样从正态分布与零均值和标准偏差0.01。

  • “零”——初始化权重为零。

  • “的”——初始化权重的。

  • 函数处理——使用一个自定义函数初始化权重。如果你指定一个函数处理,那么必须表单的功能重量= func(深圳),在那里深圳权重的大小。例如,看到的指定自定义权重的初始化函数

层只初始化时的重量权重属性是空的。

数据类型:字符|字符串|function_handle

函数来初始化偏见,指定为以下之一:

  • “零”——初始化与零偏差。

  • “的”——初始化偏见的。

  • “narrow-normal”——初始化倾向独立抽样从正态分布的均值为零,标准差为0.01。

  • 函数处理与一个自定义函数,初始化偏见。如果你指定一个函数处理,那么必须表单的功能偏见= func(深圳),在那里深圳偏差的大小。

层只初始化时的偏见偏见属性是空的。

数据类型:字符|字符串|function_handle

层权重的转置卷积操作,指定为一个filterSize (1)——- - - - - -filterSize (2)——- - - - - -numFilters——- - - - - -NumChannels数字数组或[]

层权重可学的参数。您可以指定权重的初始值直接使用权重层的属性。当你训练一个网络,如果权重属性层的非空的trainNetwork使用权重属性的初始值。如果权重属性是空的,那么trainNetwork使用指定的初始化程序WeightsInitializer层的属性。

数据类型:|

层偏见的转置卷积操作,指定为1-by-1-by -numFilters数字数组或[]

层偏差是可学的参数。当你训练一个神经网络,如果偏见非空的,那么trainNetwork使用偏见属性的初始值。如果偏见是空的,然后trainNetwork使用指定的初始化程序BiasInitializer

数据类型:|

学习速率、正规化

全部折叠

学习速率因子权重,指定为负的标量。

软件由全球学习速率繁殖这个因素确定权重的学习速率这一层。例如,如果WeightLearnRateFactor2,然后在这一层权值的学习速率是当前全球学习速率的两倍。全球学习速率决定了基于的软件设置您指定使用trainingOptions函数。

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

学习速率因子的偏见,指定为负的标量。

软件由全球学习速率繁殖这个因素来确定学习速率的偏见在这一层。例如,如果BiasLearnRateFactor2,那么学习速率的偏见层是当前全球学习速率的两倍。全球学习速率决定了基于的软件设置您指定使用trainingOptions函数。

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

l2正则化因子权重,指定为负的标量。

全球的软件增加这个因素l2正则化因子来确定l2正则化这一层的权重。例如,如果WeightL2Factor2,那么l2正则化这一层的权重是全球的两倍l2正则化因子。您可以指定全球l2正则化因子使用trainingOptions函数。

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

l2正则化因子的偏见,指定为负的标量。

全球的软件增加这个因素l2正则化因子来确定l2在这一层正规化的偏见。例如,如果BiasL2Factor2,那么l2正规化的偏见这一层是全球的两倍l2正则化因子。决定了全球的软件l2正则化因子的基础上,设置您指定使用trainingOptions函数。

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

全部折叠

图层名称,指定为一个特征向量或字符串标量。为数组输入,trainNetwork,assembleNetwork,layerGraph,dlnetwork函数自动分配名称层的名称

数据类型:字符|字符串

输出参数

全部折叠

转置二维卷积层,作为一个返回TransposedConvolution2DLayer对象。

算法

全部折叠

二维转置卷积层

一层转置二维卷积upsamples二维特征图。

标准卷积操作downsamples输入采用滑动卷积过滤器的输入。通过压扁的输入和输出,可以表达卷积操作 Y = C X + B 卷积矩阵C和偏见向量B可以来源于层重量和偏见。

类似地,转置卷积操作upsamples输入采用滑动卷积过滤器的输入。upsample输入而不是使用滑动过滤器,将采样输入的层在每条边的大小与填充相应的滤波器边缘大小- 1。

通过输入和输出压平,相当于转置卷积操作 Y = C X + B ,在那里CB表示卷积矩阵和标准偏差向量卷积来源于层重量和偏见,分别。这个操作相当于标准卷积的反向功能层。

这张图片显示了一个3×3过滤器upsampling 2×2的输入。较低的地图代表输入和上面的地图代表输出。1

动画显示3×3的转置在一个图像卷积过滤器滑动。输入图像填充,这样它是两个像素的方向。当过滤器输入图像幻灯片,它可以覆盖填充区域。输入是一个2×2的图像。的输入是一个6-by-6形象。输出是一个4×4的形象。

层的输入和输出格式

层一层一层数组或图后续层传递数据格式化dlarray对象。的格式dlarray对象是一个字符串,其中每个字符描述相应的维度的数据。这些字符的格式由一个或多个:

  • “S”——空间

  • “C”——频道

  • “B”——批

  • “T”——时间

  • “U”——未指明的

例如,二维图像数据表示成一个四维数组,第一个二维对应于图像的空间维度,第三维对应于图像的通道,第四个维度对应批维度,可以被描述为有格式“SSCB”(空间、空间、通道、批)。

你可以与这些交互dlarray对象等自动分化工作流开发一个自定义图层,使用functionLayer对象,或使用向前预测功能与dlnetwork对象。

此表显示了支持输入格式万博1manbetxTransposedConvolution2DLayer对象和相应的输出格式。如果输出层的传递给一个定制的层不继承nnet.layer.Formattable类,或FunctionLayer对象的Formattable属性设置为0(假),然后层接收未格式化dlarray对象的尺寸要求相应的这个表的格式。

输入格式 输出格式

“SSCB”(空间、空间、通道、批处理)

“SSCB”(空间、空间、通道、批处理)

“SSC”(空间、空间、通道)

“SSC”(空间、空间、通道)

dlnetwork对象,TransposedConvolution2DLayer对象也支持这些输入和输出格万博1manbetx式的组合。

输入格式 输出格式

“SSCBT”(空间、空间、通道、批处理时间)

“SSCBT”(空间、空间、通道、批处理时间)

“SSCT”(空间、空间、通道、时间)

“SSCT”(空间、空间、通道、时间)

引用

[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

扩展功能

GPU的代码生成
生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。

版本历史

介绍了R2017b

全部展开


1图片来源:卷积运算(许可证)