主要内容

transposedConv3dLayer

转置的三维卷积层

描述

一个转置的三维卷积层对三维特征图进行采样。

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

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

例子

= transposedConv3dLayer (filterSizenumFilters名称,值返回一个3-D转置卷积层,并使用一个或多个名值对参数指定其他选项。

例子

全部折叠

创建一个带有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:[]显示所有属性

输入参数

全部折叠

过滤器的高度、宽度和深度,指定为正整数或三个正整数的向量[w h 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是沿着深度的步长。在创建层时,您可以指定作为一个标量,在所有三个方向上使用相同的步长值。

例子:(1 2 3)指定垂直步长为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”-使用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

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

  • “零”-初始偏差为零。

  • “的”-初始偏差为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

数据类型:|

学习率和正规化

全部折叠

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

软件将该因子乘以全局学习率,以确定该层中权重的学习率。例如,如果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函数自动为具有此名称的层分配名称

数据类型:字符|字符串

输出参数

全部折叠

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

算法

全部折叠

三维转置卷积层

一个转置的三维卷积层对三维特征图进行采样。

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

类似地,转置卷积操作upsamples通过对输入应用滑动卷积滤波器来实现输入。为了对输入进行上采样而不是使用滑动滤波器进行下采样,该层对输入的每条边进行零填充,填充的大小为相应的滤波器边大小减1。

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

参考文献

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

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

版本历史

介绍了R2019a

Baidu
map