主要内容

transposedConv3dLayer

转置三维卷积层

自从R2019a

描述

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

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

= transposedConv3dLayer (filterSize,numFilters)返回一个3 d转置卷积层和设置FilterSizeNumFilters属性。

例子

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

例子

全部折叠

创建一个转置三维卷积与32层过滤器,每一个都有高度,宽度和深度的11。使用一个跨步4在水平和垂直方向上沿深度和2。

32层= transposedConv3dLayer(11日,“步”(4 4 2))
层= TransposedConvolution3DLayer属性:名称:“Hyperparameters FilterSize: [11 11 11] NumChannels:“汽车”NumFilters: 32步:[4 4 2]CroppingMode:“手动”CroppingSize: [2 x3双]可学的参数权重:[]偏见:[]显示所有属性

输入参数

全部折叠

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

如果filterSize是一个标量,那么所有三维软件使用相同的值。

例子:(5 6 7)指定过滤器的高度、宽度和深度5,6,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)非负整数的作物t,l,f,b,r,汉堡王从上、左、前、底部和背部的输入,分别。

如果你设置裁剪选择一个数值,然后软件自动设置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初始化)。Glorot初始化样本独立均匀分布与零均值和方差2 / (numIn + numOut),在那里numIn = FilterSize (1) * FilterSize (2) * FilterSize (3) * NumChannelsnumOut = FilterSize (1) * FilterSize (2) * FilterSize (3) * NumFilters

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数据类型:|

层偏见的转置卷积操作,指定为1-by-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函数自动分配名称层的名称

数据类型:字符|字符串

输出参数

全部折叠

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

算法

全部折叠

三维转置卷积层

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

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

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

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

层的输入和输出格式

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

  • “S”——空间

  • “C”——频道

  • “B”——批

  • “T”——时间

  • “U”——未指明的

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

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

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

输入格式 输出格式

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

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

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

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

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

输入格式 输出格式

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

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

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

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

引用

[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

版本历史

介绍了R2019a