主要内容

dltranspconv

深度学习转置卷积

描述

转置卷积操作upsamples特征图。

dltranspconv深度学习转置卷积操作适用于函数dlarray数据。使用dlarray更易于处理高维数据的对象允许您标签的尺寸。例如,您可以标签尺寸对应于空间,时间,频道,使用批处理维度“S”,“T”,“C”,“B”标签,分别。未指明的和其他维度,使用“U”标签。为dlarray对象的函数操作特定的尺寸,你可以指定尺寸标签的格式dlarray直接对象,或通过使用DataFormat选择。

请注意

这个函数卷积应用深度学习转置操作dlarray数据。如果你想申请调换卷积内layerGraph对象或数组,使用下面一层:

例子

Y= dltranspconv (X,权重,偏见)深度学习转置卷积计算的输入X使用定义的过滤器权重,并添加常数偏见。输入X必须是一个格式化的dlarray。输出Y是一个格式化的dlarray同样的尺寸格式X

这个函数,默认情况下,在三维空间的可变X标签“S”(空间)。在尺寸标注进行卷积“T”(时间),指定权重与一个“T”使用格式化的维度dlarray对象或使用WeightsFormat选择。

无格式的输入数据,使用DataFormat选择。

Y= dltranspconv (X,权重,偏见,DataFormat = FMT)深度学习转置卷积操作适用于非格式化dlarray对象X带格式的规定FMT。输出Y是一个非格式化dlarray对象维度的顺序一样X

例子

Y= dltranspconv (___名称=值)指定选项使用一个或多个名称-值对参数除了输入参数在以前的语法。例如,步= 3集卷积的步操作。

例子

全部折叠

创建一个格式化的dlarray对象包含了一批128 28-by-28图像3通道。指定的格式“SSCB”(空间、空间、通道、批)。

miniBatchSize = 128;inputSize = 28 [28];numChannels = 3;X =兰特(inputSize (1) inputSize (2), numChannels, miniBatchSize);X = dlarray (X,“SSCB”);

视图的大小和格式输入数据。

大小(X)
ans =1×4128年28日28日3
dim (X)
ans = ' SSCB '

初始化二维卷积转置的重量和偏见。对于权重,指定64 3 x3的过滤器。的偏见,指定一个零的向量。

filterSize = 3 [3];numFilters = 64;重量=兰德(filterSize (1) filterSize (2), numFilters, numChannels);偏见= 0 (1、numFilters);

应用二维卷积调换使用dltranspconv函数。

Y = dltranspconv (X,重量偏差);

视图的大小和格式输出。

大小(Y)
ans =1×430 64 128
退去(Y)
ans = ' SSCB '

创建一个格式化的dlarray对象包含了一批128 28-by-28图像16频道。指定的格式“SSCB”(空间、空间、通道、批)。

miniBatchSize = 128;inputSize = 28 [28];numChannels = 16;X =兰特(inputSize (1) inputSize (2), numChannels, miniBatchSize);X = dlarray (X,“SSCB”);

视图的大小和格式输入数据。

大小(X)
ans =1×4128年28日28日16
dim (X)
ans = ' SSCB '

初始化二维转置分组卷积的重量和偏见。对于权重,指定两组64 3 x3的过滤器。的偏见,指定一个零的向量。

通道的数量每组是由通道的输入数据的数量除以组的数量。的大小偏差向量的数量每组的数量乘以组过滤器。

filterSize = 3 [3];numFiltersPerGroup = 64;numGroups = 2;numChannelsPerGroup = numChannels / numGroups;重量=兰德(filterSize (1) filterSize (2), numFiltersPerGroup, numChannelsPerGroup, numGroups);偏见= 0 (1,numFiltersPerGroup * numGroups);

应用二维卷积分组调换使用dltranspconv函数。

Y = dltranspconv (X,重量偏差);

视图的大小和格式输出。

大小(Y)
ans =1×430 128 128
退去(Y)
ans = ' SSCB '

输入参数

全部折叠

输入数据,指定为一个格式化的dlarray,一个非格式化dlarray或数字数组。

如果X是一个非格式化dlarray或数值数组,那么您必须指定使用的格式DataFormat选择。如果X是一个数值数组,然后要么权重偏见必须是一个dlarray对象。

这个函数,默认情况下,在三维空间的可变X标签“S”(空间)。在尺寸标注进行卷积“T”(时间),指定权重与一个“T”使用格式化的维度dlarray对象或使用WeightsFormat选择。

过滤器,指定为一个格式化的dlarray,一个非格式化dlarray或数字数组。

权重的大小和格式取决于任务的类型。如果权重是一个非格式化dlarray或数值数组,然后的大小和形状权重取决于WeightsFormat选择。

下表描述了各种任务权重的大小和格式。您可以指定数组的维度使用格式化的任何顺序dlarray对象或使用WeightsFormat选择。当权重有多个具有相同标签的尺寸标记(例如,多个维度“S”),那么这些维度必须在命令中描述这张桌子。

任务 所需的尺寸 大小 例子
权重 格式
一维卷积转置 “S”(空间)或“T”(时间) 过滤器的大小

filterSize——- - - - - -numFilters——- - - - - -numChannels数组,filterSize一维过滤器的大小,numFilters过滤器的数量,numChannels是渠道的数量的输入数据。

“并”(未指明的空间、通道)
“C”(通道) 数量的渠道
“U”(不明) 数量的过滤器
一维分组卷积转置 “S”(空间)或“T”(时间) 过滤器的大小

filterSize——- - - - - -numFiltersPerGroup——- - - - - -numChannelsPerGroup——- - - - - -numGroups数组,filterSize一维过滤器的大小,numFiltersPerGroup每组是过滤器的数量,numChannelsPerGroup是渠道的数量每组输入数据,然后呢numGroups是组数。

numChannelsPerGroup必须等于输入数据的通道的数量除以吗numGroups

“SCUU”(未指明的空间通道,不明)
“C”(通道) 每个组的通道数
第一个“U”(不明) 每组数量的过滤器
第二个“U”(不明) 数量的组
二维卷积转置 第一个“S”(空间) 过滤器的高度

filterSize (1)——- - - - - -filterSize (2)——- - - - - -numFilters——- - - - - -numChannels数组,filterSize (1)filterSize (2)高度和宽度的二维滤波器,分别numFilters过滤器的数量,numChannels是渠道的数量的输入数据。

“SSCU”(未指明的空间、空间、通道)
第二个“S”(空间)或“T”(时间) 滤波器的宽度
“C”(通道) 数量的渠道
“U”(不明) 数量的过滤器
二维转置分组卷积 第一个“S”(空间) 过滤器的高度

filterSize (1)——- - - - - -filterSize (2)——- - - - - -numFiltersPerGroup——- - - - - -numChannelsPerGroup——- - - - - -numGroups数组,filterSize (1)filterSize (2)高度和宽度的二维滤波器,分别numFiltersPerGroup每组是过滤器的数量,numChannelsPerGroup是渠道的数量每组输入数据,然后呢numGroups是团体的数量。

numChannelsPerGroup必须等于输入数据的通道的数量除以吗numGroups

“SSCUU”(空间、空间、通道、未指明的不明)
第二个“S”(空间)或“T”(时间) 滤波器的宽度
“C”(通道) 每个组的通道数
第一个“U”(不明) 每组数量的过滤器
第二个“U”(不明) 数量的组
三维转置卷积 第一个“S”(空间) 过滤器的高度

filterSize (1)——- - - - - -filterSize (2)——- - - - - -filterSize (3)——- - - - - -numFilters——- - - - - -numChannels数组,filterSize (1),filterSize (2),filterSize (3)高度,宽度和深度的三维过滤器,分别numFilters过滤器的数量,numChannels是渠道的数量的输入数据。

“SSSCU”(空间、空间、空间、通道、不明)
第二个“S”(空间) 滤波器的宽度
第三“S”(空间)或“T”(时间) 过滤器深度
“C”(通道) 数量的渠道
“U”(不明) 数量的过滤器

提示

这个函数,默认情况下,在三维空间的可变X标签“S”(空间)。在尺寸标注进行卷积“T”(时间),指定权重与一个“T”使用格式化的维度dlarray对象或使用WeightsFormat选择。

偏见常数,指定为一个格式化的或未格式化dlarray向量或dlarray标量、数值向量或一个数字标量。

  • 如果偏见是一个标量或只有单维度,同样的偏见是用于输出的每个条目。

  • 如果偏见nonsingleton维度,每个元素的偏见偏差适用于指定的相应的卷积过滤器吗权重。元素的数量偏见必须匹配过滤器规定的数量。

如果偏见是一个格式化的dlarray,nonsingleton维度必须一个通道尺寸标注“C”

名称-值参数

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

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

例子:步= 2每个过滤器的步幅设置为2。

维度的非格式化输入数据,指定为一个特征向量或字符串标量FMT为每个维度的数据提供一个标签。

当你指定的格式dlarray对象,每个字符为每个维度的数据和提供一个标签必须是下列之一:

  • “S”——空间

  • “C”——频道

  • “B”批处理(例如,样品和观察)

  • “T”时间(例如,时间序列的步骤)

  • “U”——未指明的

您可以指定多个维度标签“S”“U”。您可以使用标签“C”,“B”,“T”最多一次。

您必须指定DataFormat当输入数据不是一个格式化的dlarray

数据类型:字符|字符串

维度的权重,指定为一个特征向量或字符串标量,它提供了一个标签为每个维度的权重。

的默认值WeightsFormat取决于任务:

任务 默认的
一维卷积转置 “并”(未指明的空间、通道)
一维分组卷积转置 “SCUU”(未指明的空间通道,不明)
二维卷积转置 “SSCU”(未指明的空间、空间、通道)
二维转置分组卷积 “SSCUU”(空间、空间、通道、未指明的不明)
三维转置卷积 “SSSCU”(空间、空间、空间、通道、不明)

支持的维金宝app度标签组合取决于类型的卷积,有关更多信息,请参见权重论点。

提示

这个函数,默认情况下,在三维空间的可变X标签“S”(空间)。在尺寸标注进行卷积“T”(时间),指定权重与一个“T”使用格式化的维度dlarray对象或使用WeightsFormat选择。

数据类型:字符|字符串

步长为遍历输入数据,指定为一个数值标量或数值向量。

使用相同的步长为所有卷积维度,将步指定为一个标量。为每个卷积维度来指定一个不同的值,指定的路径作为一个向量元素要求相应的标签尺寸数据格式。

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

过滤器膨胀因素,指定为指定为一个数值标量或数值向量。

使用卷积)的扩张因素维度,扩张因素指定为一个标量。卷积来指定一个不同的值为每个维度,扩张因素指定为一个向量元素命令对应尺寸标签的数据格式。

使用膨胀因素增加过滤器的接受域的面积(输入过滤器可以看到)的输入数据。使用膨胀系数对应于一个有效的过滤器的大小filterSize + (filterSize-1) * (dilationFactor-1)

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

种植应用于边缘的数据,指定为以下之一。

  • “相同”——裁剪,输出大小是一样的输入大小跨步时1。更普遍的是,输出每个空间维度的大小inputSize *步,在那里inputSize是输入的大小以及卷积维度。

  • 数字标量——同一种植价值应用于两端卷积的维度。

  • 数值向量,不同种植卷积值是应用在每一个维度。使用一个向量的大小d,在那里d是卷积维度的数量的输入数据。的向量指定裁剪的应用th元素的开始和结束卷积的维度。

  • 数字矩阵——不同的种植价值应用于每一个卷积维度的开始和结束。使用矩阵的大小2 -d,在那里d是卷积维度的数量的输入数据。的元素(d)指定了种植用于卷积维度的开始d。的元素(2 d)指定了种植应用卷积的维度d。例如,在二维的格式(前、左;下,右)

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

输出参数

全部折叠

特征地图,作为一个返回dlarray。输出Y有相同的底层数据类型作为输入X

如果输入数据X是一个格式化的dlarray,然后Y有相同的格式吗X。如果没有一个格式化的输入数据dlarray,然后Y是一个非格式化dlarray或数字数组具有相同尺寸订单作为输入数据。

的大小“C”(频道)的维度Y取决于的大小权重输入。的大小“C”(频道)的输出Y产品的大小尺寸吗numFiltersPerGroupnumGroups权重论点。如果权重是一个格式化的dlarray,本产品是一样的大小的乘积“C”(频道)维度和第二个“U”(不明)维度。

算法

全部折叠

转置卷积

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

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

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

扩展功能

版本历史

介绍了R2019b