dltranspconv
描述
转置卷积运算向上采样特征图。
的dltranspconv
函数将深度学习转置卷积运算应用于dlarray
数据。使用dlarray
对象允许您标记维度,从而更容易处理高维数据。属性标记哪些维度对应于空间、时间、通道和批处理维度“S”
,“T”
,“C”
,“B”
标签,分别。对于未指定的维度和其他维度,使用“U”
标签。为dlarray
对象的函数在特定维度上操作时,可以通过格式化dlarray
对象,或者使用DataFormat
选择。
请注意
该函数将深度学习转置卷积运算应用于dlarray
数据。如果你想对a进行转置卷积layerGraph
对象或层
数组,使用以下图层之一:
计算输入的深度学习转置卷积Y
= dltranspconv (X
,权重
,偏见
)X
使用定义的筛选器权重
,并加上常数偏见
.输入X
必须是格式化的dlarray
.输出Y
是格式化的dlarray
相同的维度格式X
.
这个函数,默认情况下,在最多三个维度上卷积X
标签“S”
(空间)。对标记的维度进行卷积“T”
(时间),指定权重
与一个“T”
使用格式化的dlarray
对象或使用WeightsFormat
选择。
对于未格式化的输入数据,使用DataFormat
选择。
例子
执行二维转置卷积
创建格式化的dlarray
对象,该对象包含128个28 × 28图像,有3个通道。指定格式“SSCB”
(空间,空间,通道,批次)。
miniBatchSize = 128;inputSize = [28 28];numChannels = 3;X = rand(inputSize(1),inputSize(2),numChannels,miniBatchSize);X = dlarray(X,“SSCB”);
查看输入数据的大小和格式。
大小(X)
ans =1×428 28 3 128
dim (X)
ans = 'SSCB'
初始化二维转置卷积的权值和偏置。对于权重,指定64个3 × 3筛选器。对于偏差,指定一个零向量。
filterSize = [3 3];numFilters = 64;weights = rand(filterSize(1),filterSize(2),numFilters,numChannels);bias = 0 (1,numFilters);
应用二维转置卷积dltranspconv
函数。
Y = dltranspconv(X,权重,偏差);
查看输出的大小和格式。
大小(Y)
ans =1×430 30 64 128
退去(Y)
ans = 'SSCB'
执行分组转置卷积
创建格式化的dlarray
对象,该对象包含一批128张28 × 28图像,具有16个通道。指定格式“SSCB”
(空间,空间,通道,批次)。
miniBatchSize = 128;inputSize = [28 28];numChannels = 16;X = rand(inputSize(1),inputSize(2),numChannels,miniBatchSize);X = dlarray(X,“SSCB”);
查看输入数据的大小和格式。
大小(X)
ans =1×428 28 16 128
dim (X)
ans = 'SSCB'
初始化二维分组转置卷积的权值和偏置。对于权重,指定两组64个3 × 3筛选器。对于偏差,指定一个零向量。
每组的通道数由输入数据的通道数除以组数给出。偏差向量的大小是每组过滤器的数量乘以组的数量。
filterSize = [3 3];numFiltersPerGroup = 64;numGroups = 2;numChannelsPerGroup = numChannels / numGroups;weights = rand(filterSize(1),filterSize(2),numFiltersPerGroup,numChannelsPerGroup,numGroups);bias = 0 (1,numFiltersPerGroup*numGroups);
应用二维分组转置卷积dltranspconv
函数。
Y = dltranspconv(X,权重,偏差);
查看输出的大小和格式。
大小(Y)
ans =1×430 30 128 128
退去(Y)
ans = 'SSCB'
输入参数
X
- - - - - -输入数据
dlarray
|数字数组
输入数据,指定为格式化的dlarray
,一个未格式化的dlarray
,或数值数组。
如果X
是未格式化的dlarray
或数值数组,则必须使用DataFormat
选择。如果X
是数字数组吗权重
或偏见
一定是dlarray
对象。
这个函数,默认情况下,在最多三个维度上卷积X
标签“S”
(空间)。对标记的维度进行卷积“T”
(时间),指定权重
与一个“T”
使用格式化的dlarray
对象或使用WeightsFormat
选择。
权重
- - - - - -过滤器
dlarray
|数字数组
过滤器,指定为格式化的dlarray
,一个未格式化的dlarray
,或数值数组。
权重的大小和格式取决于任务的类型。如果权重
是未格式化的dlarray
或者一个数字数组,那么大小和形状权重
取决于WeightsFormat
选择。
下表描述了各种任务权重的大小和格式。可以使用格式化方法指定具有任意顺序的维度的数组dlarray
对象或使用WeightsFormat
选择。当权重具有具有相同标签的多个维度时(例如,多个维度被标记为“S”
),则这些尺寸必须按表中所示的顺序排列。
任务 | 所需的尺寸 | 大小 | 例子 | |
---|---|---|---|---|
权重 | 格式 | |||
一维转置卷积 | “S” (空间)或“T” (时间) |
过滤器的大小 |
|
“并” (空间,通道,未指明) |
“C” (通道) |
通道数 | |||
“U” (不明) |
过滤器数量 | |||
一维分组转置卷积 | “S” (空间)或“T” (时间) |
过滤器的大小 |
|
“SCUU” (空间,通道,未指明,未指明) |
“C” (通道) |
每组通道数 | |||
第一个“U” (不明) |
每组过滤器的数量 | |||
第二个“U” (不明) |
组数 | |||
二维转置卷积 | 第一个“S” (空间) |
过滤器的高度 |
|
“SSCU” (空间,空间,通道,未指明) |
第二个“S” (空间)或“T” (时间) |
滤波器的宽度 | |||
“C” (通道) |
通道数 | |||
“U” (不明) |
过滤器数量 | |||
二维分组转置卷积 | 第一个“S” (空间) |
过滤器的高度 |
|
“SSCUU” (空间,空间,通道,未指明,未指明) |
第二个“S” (空间)或“T” (时间) |
滤波器的宽度 | |||
“C” (通道) |
每组通道数 | |||
第一个“U” (不明) |
每组过滤器的数量 | |||
第二个“U” (不明) |
组数 | |||
三维转置卷积 | 第一个“S” (空间) |
过滤器的高度 |
|
“SSSCU” (空间,空间,空间,通道,未指明) |
第二个“S” (空间) |
滤波器的宽度 | |||
第三“S” (空间)或“T” (时间) |
过滤器深度 | |||
“C” (通道) |
通道数 | |||
“U” (不明) |
过滤器数量 |
提示
这个函数,默认情况下,在最多三个维度上卷积X
标签“S”
(空间)。对标记的维度进行卷积“T”
(时间),指定权重
与一个“T”
使用格式化的dlarray
对象或使用WeightsFormat
选择。
偏见
- - - - - -偏见常数
dlarray
向量|dlarray
标量|数值向量|数字标量
偏差常数,指定为格式化或非格式化dlarray
向量或dlarray
标量,数值向量或数值标量。
如果
偏见
是标量或仅具有单个维度,则对输出的每个项应用相同的偏置。如果
偏见
有一个非单维度,每个元素偏见
偏差是否应用于?所指定的相应卷积滤波器权重
.元素的个数偏见
所指定的筛选器数目必须匹配权重
.
如果偏见
是格式化的dlarray
,则非单维度必须是标记的通道维度“C”
.
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:步= 2
将每个过滤器的步幅设置为2。
DataFormat
- - - - - -未格式化数据的维度顺序
特征向量|字符串标量
未格式化输入数据的维度顺序,指定为字符向量或字符串标量FMT
它为数据的每个维度提供了一个标签。
的格式时dlarray
对象,每个字符为数据的每个维度提供一个标签,并且必须是以下选项之一:
“S”
——空间“C”
——频道“B”
-批次(例如,样品和观察)“T”
-时间(例如序列的时间步长)“U”
——未指明的
您可以指定多个有标记的维度“S”
或“U”
.你可以使用标签“C”
,“B”
,“T”
最多一次。
您必须指定DataFormat
当输入数据未被格式化时dlarray
.
数据类型:字符
|字符串
WeightsFormat
- - - - - -权重的维数顺序
特征向量|字符串标量
权重的维度顺序,指定为字符向量或字符串标量,为权重的每个维度提供一个标签。
的默认值WeightsFormat
取决于任务:
任务 | 默认的 |
---|---|
一维转置卷积 | “并” (空间,通道,未指明) |
一维分组转置卷积 | “SCUU” (空间,通道,未指明,未指明) |
二维转置卷积 | “SSCU” (空间,空间,通道,未指明) |
二维分组转置卷积 | “SSCUU” (空间,空间,通道,未指明,未指明) |
三维转置卷积 | “SSSCU” (空间,空间,空间,通道,未指明) |
支持的维万博1manbetx度标签组合取决于卷积的类型,有关详细信息,请参阅权重
论点。
提示
这个函数,默认情况下,在最多三个维度上卷积X
标签“S”
(空间)。对标记的维度进行卷积“T”
(时间),指定权重
与一个“T”
使用格式化的dlarray
对象或使用WeightsFormat
选择。
数据类型:字符
|字符串
步
- - - - - -遍历输入数据的步长
1
(默认)|数字标量|数值向量
用于遍历输入数据的步长,指定为数值标量或数值向量。
若要对所有卷积维使用相同的步长,请将步幅指定为标量。若要为每个卷积维度指定不同的值,请将步幅指定为一个向量,其中元素的顺序与数据格式中的维度标签相对应。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
DilationFactor
- - - - - -过滤器膨胀系数
1
(默认)|数字标量|数值向量
过滤器膨胀系数,指定为数值标量或数值向量。
若要在所有卷积维数中使用膨胀因子,请将膨胀因子指定为标量。若要为每个卷积维度指定不同的值,请将膨胀因子指定为一个向量,其中元素的顺序与数据格式中的维度标签相对应。
使用膨胀因子来增加过滤器在输入数据上的接受域(过滤器可以看到的输入区域)。使用膨胀因子对应于的有效滤镜尺寸filterSize + (filterSize-1)*(dilationFactor-1)
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
裁剪
- - - - - -应用于数据边缘的裁剪
0(默认)|“相同”
|数字标量|数值向量|数字矩阵
应用于数据边缘的裁剪,指定为下列之一。
“相同”
-裁剪的设置,使输出大小是相同的输入大小时,步幅1
.一般来说,每个空间维度的输出大小为inputSize *步
,在那里inputSize
是输入沿卷积维数的大小。数值标量-相同的裁剪值应用于卷积维的两端。
数值向量——沿着每个卷积维度应用不同的裁剪值。使用一个大小相同的向量
d
,在那里d
输入数据的卷积维数。的我
向量的第Th元素指定应用到的开始和结束处的裁剪我
卷积维数。数值矩阵——不同的裁剪值应用于每个卷积维的开始和结束。使用大小为2 × -的矩阵
d
,在那里d
输入数据的卷积维数。的元素(d)
指定应用于卷积维数开始处的裁剪d
.的元素(2 d)
指定应用到卷积维数末端的裁剪d
.例如,在二维中,格式为(前、左;下,右)
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
输出参数
Y
-功能地图
dlarray
特性映射,返回为dlarray
.输出Y
具有与输入相同的底层数据类型X
.
如果输入数据X
是格式化的dlarray
,然后Y
格式与X
.如果输入数据没有格式化dlarray
,然后Y
是未格式化的dlarray
或与输入数据具有相同维序的数值数组。
的大小“C”
(通道)的尺寸Y
取决于的大小权重
输入。的大小“C”
(通道)输出维数Y
是尺寸的乘积吗numFiltersPerGroup
而且numGroups
在权重
论点。如果权重
是格式化的dlarray
,此产品的尺寸与该产品的尺寸相同“C”
(信道)维和二次“U”
(不明)维度。
算法
转置卷积
的标准卷积操作downsamples通过对输入应用滑动卷积滤波器得到的输入。通过将输入和输出扁平化,可以将卷积运算表示为 对于卷积矩阵C偏差向量B这可以从层权重和偏差中推导出来。
类似地,转置卷积操作upsamples通过对输入应用滑动卷积滤波器得到的输入。为了对输入进行上采样,而不是使用滑动滤波器进行下采样,层零填充输入的每个边,其大小为对应的滤波器边大小- 1。
通过将输入和输出扁平化,转置卷积运算等价于 ,在那里C而且B分别表示由层权值和偏差导出的标准卷积的卷积矩阵和偏差向量。这个操作相当于一个标准卷积层的后向函数。
扩展功能
GPU数组
通过使用并行计算工具箱™在图形处理单元(GPU)上运行来加速代码。
使用注意事项和限制:
当以下输入参数中至少有一个是
gpuArray
或者一个dlarray
类型的底层数据gpuArray
,该函数运行在GPU上。X
权重
偏见
有关更多信息,请参见在图形处理器上运行MATLAB函数(并行计算工具箱).
版本历史
R2019b引入
第一MATLAB
海脂循环匹配函数对应求解MATLAB:
Esegui il commanmando inserendolo nella finestra di commanmando MATLAB。我的浏览器web不支持和MATLAB万博1manbetx。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。