主要内容

transposedConv3dLayer

转置三维卷积层

描述

转置的三维卷积层向上采样三维特征图。

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

= transposedConv3dLayer (filterSizenumFilters返回一个三维转置卷积层,并设置FilterSize而且NumFilters属性。

例子

= transposedConv3dLayer (filterSizenumFilters名称,值返回一个三维转置卷积层,并使用一个或多个名称-值对参数指定附加选项。

例子

全部折叠

创建一个带有32个过滤器的转置3-D卷积层,每个过滤器的高度、宽度和深度为11。在水平和垂直方向上使用4的步幅,在深度上使用2的步幅。

层=转置conv3dlayer (11,32,“步”,[4 4 2])
layer = TransposedConvolution3DLayer with properties: Name: " Hyperparameters FilterSize: [11 11 11] NumChannels: 'auto' NumFilters: 32 Stride: [4 4 2] CroppingMode: 'manual' CroppingSize: [2x3 double] Learnable Parameters Weights: [] Bias:[]显示所有属性

输入参数

全部折叠

过滤器的高度、宽度和深度,指定为正整数或由三个正整数组成的向量[h w d],在那里h是高度,w是宽度,和d是深度。过滤器大小定义了神经元在输入中连接的局部区域的大小。

如果filterSize为标量,则软件对所有三个维度使用相同的值。

例子:[5 6 7]指定高度、宽度和深度为的筛选器56,7分别。

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

筛选器的数目,指定为正整数。这个数字对应于该层中连接到输入中相同区域的神经元数量。这个参数决定了层输出中的通道(特征映射)的数量。

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

名称-值参数

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

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:transposedConv3dLayer(11, 96,“步”,4)创建一个3-D转置卷积层,96个大小为11的滤波器,步幅为4。

转置卷积

全部折叠

在三维中遍历输入的步长,指定为向量[a b c]三个正整数,其中一个是竖直步长,b水平步长,和c是沿深度的步长。在创建层时,您可以指定作为一个标量,在三个方向上对步长使用相同的值。

例子:[2 3 1]指定垂直步长为2,水平步长为3,以及深度为1的步长。

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

输出大小减小,指定为以下之一:

  • “相同”-设置裁剪,使输出大小等于inputSize。*步,在那里inputSize是输入层的高度、宽度和深度。如果你设置裁剪选项“相同”,然后软件自动设置CroppingMode属性“相同”

    如果可能的话,软件会从顶部和底部、左边和右边,以及前面和后面修剪等量的头发。如果垂直裁剪量为奇数,则软件将从底部裁剪额外一行。如果水平裁剪量为奇数,则软件将从右侧裁剪额外的一列。如果深度裁剪量为奇数,则软件将从后面裁剪一个额外的平面。

  • 正整数-从所有边中裁剪指定数量的数据。

  • 非负整数向量[a b c]——作物一个从上到下裁剪b从左到右,然后裁剪c从前面和后面。

  • 一个非负整数的矩阵[t l f;B r bk]非负整数-裁剪tlfbr汉堡王分别从输入的上、左、前、下、右和后。

如果你设置裁剪选项设置为数值,然后软件自动设置CroppingMode属性“手动”

例子:[1 2 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初始化器)。格洛洛特初始化器独立地从均值和方差为零的均匀分布中采样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,标准差为0.01的正态分布中独立抽样来初始化权重。

  • “零”-用0初始化权重。

  • “的”-用1初始化权重。

  • 函数句柄——使用自定义函数初始化权重。如果指定了函数句柄,则该函数必须为权重= func(sz),在那里深圳就是权重的大小。有关示例,请参见指定自定义权重初始化函数

时,层才初始化权重权重属性为空。

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

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

  • “零”-用0初始化偏差。

  • “的”-用1初始化偏差。

  • “narrow-normal”-通过从均值为零、标准差为0.01的正态分布中独立抽样来初始化偏差。

  • 函数句柄-使用自定义函数初始化偏置。如果指定了函数句柄,则该函数必须为偏差= func(sz),在那里深圳是偏差的大小。

时,层才初始化偏差偏见属性为空。

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

转置卷积运算的层权值,指定为aFilterSize (1)——- - - - - -FilterSize (2)——- - - - - -FilterSize (3)——- - - - - -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

全部折叠

层名,指定为字符向量或字符串标量。为数组输入时,trainNetworkassembleNetworklayerGraph,dlnetwork函数自动为具有name的层分配名称

数据类型:字符|字符串

输出参数

全部折叠

转置的三维卷积层,返回为TransposedConvolution3dLayer对象。

算法

全部折叠

三维转置卷积层

转置的三维卷积层向上采样三维特征图。

标准卷积操作downsamples通过对输入应用滑动卷积滤波器得到的输入。通过将输入和输出扁平化,可以将卷积运算表示为 Y C X + B 对于卷积矩阵C和偏见B这可以从层权重和偏差中推导出来。

类似地,转置卷积操作upsamples通过对输入应用滑动卷积滤波器得到的输入。为了对输入进行上采样,而不是使用滑动滤波器进行下采样,层零填充输入的每个边,其大小为对应的滤波器边大小- 1。

通过将输入和输出扁平化,转置卷积运算等价于 Y C X + B ,在那里C而且B分别表示由层权值和偏差导出的标准卷积的卷积矩阵和偏差矩阵。这个操作相当于一个标准卷积层的后向函数。

参考文献

格洛洛特,泽维尔,还有约书亚·本吉奥。《理解深度前馈神经网络训练的难度》在第十三届人工智能与统计国际会议论文集, 249 - 356。撒丁岛,意大利:AISTATS, 2010。

[2]何开明,张翔宇,任少卿,孙健。“深入研究整流器:在ImageNet分类上超越人类水平的性能。”在2015年IEEE计算机视觉国际会议论文集, 1026 - 1034。华盛顿:IEEE计算机视觉学会,2015。

版本历史

在R2019a中引入