主要内容

dltranspconv

深度学习转置卷积

描述

转置卷积操作upsamples特征图。

请注意

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

例子

海底= dltranspconv (dlX,权重,偏见)深度学习转置卷积计算的输入dlX使用定义的过滤器权重,添加一个常数偏见。输入dlX必须是一个格式化的dlarray。转置卷积作用于你指定的尺寸“年代”“C”维度。输出海底是一个格式化的dlarray同样的尺寸格式dlX

海底= dltranspconv (dlX,权重,偏见、“DataFormat”FMT)还指定了尺寸格式FMTdlX不是一个格式化的dlarray。输出海底是一个非格式化dlarray顺序相同的维度dlX

例子

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

例子

全部折叠

卷积图像,然后使用转置卷积来调整卷积图像与原始图像相同大小。

导入数据并将其转换为一个形象dlarray

X = imread (“sherlock.jpg”);dlX = dlarray(单(X),SSC的);

显示图像。

imshow (X)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

初始化卷积过滤器和偏见。指定一个未分组的卷积,单个过滤器适用于所有三个通道的输入数据。

filterHeight = 10;filterWidth = 10;numChannelsPerGroup = 3;numFiltersPerGroup = 1;numGroups = 1;重量=兰德(filterHeight filterWidth、numChannelsPerGroup numFiltersPerGroup, numGroups);偏见=兰德(numFiltersPerGroup * numGroups, 1);

执行卷积。使用一个“步”的价值2和一个“DilationFactor”的价值2

海底= dlconv (dlX、权重、偏见,“步”2,“DilationFactor”3);

显示图像卷积。

Y = extractdata(海底);imshow(重新调节(Y))

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

初始化转置卷积过滤器和偏见。指定一个未分组的转置三个过滤器适用于输入的卷积。使用相同的滤波器高度和过滤宽度的卷积操作。

numChannelsPerGroupTC = 1;numFiltersPerGroupTC = 3;weightsTC =兰德(filterHeight filterWidth、numFiltersPerGroupTC numChannelsPerGroupTC, numGroups);biasTC =兰德(numFiltersPerGroupTC * numGroups, 1);

执行转置卷积。使用相同的步伐和扩张因素对于卷积操作。

dlZ = dltranspconv(海底,weightsTC biasTC,“步”2,“DilationFactor”3);

转置后显示图像卷积。

Z = extractdata (dlZ);imshow(重新调节(Z))

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

比较原始图像的大小,图像卷积,卷积转置后的图像。

sizeX大小(X) =
sizeX =1×3640 960 3
sizeY =大小(Y)
sizeY =1×2307 467
sizeZ =大小(Z)
sizeZ =1×3640 960 3

转置卷积upsamples卷积的数据大小的原始输入数据。

转置卷积应用于输入数据在三组,每组两个渠道。应用四个过滤器每组。

创建的输入数据作为观测十大小100 -,- 100有六个频道。

身高= 100;宽度= 100;渠道= 6;numObservations = 10;X =兰德(高度、宽度、通道numObservations);dlX = dlarray (X,“SSCB”);

初始化转置卷积操作的过滤器。指定三组转置运算,每个四个过滤器适用于输入数据的两个渠道。

filterHeight = 8;filterWidth = 8;numChannelsPerGroup = 2;numFiltersPerGroup = 4;numGroups = 3;重量=兰德(filterHeight filterWidth、numFiltersPerGroup numChannelsPerGroup, numGroups);

初始化倾向。

偏见=兰德(numFiltersPerGroup * numGroups, 1);

执行转置卷积。

海底= dltranspconv (dlX、重量偏差);大小(海底)
ans =1×4107 107年12
dim(海底)
ans = ' SSCB '

卷积的12通道输出代表转置运算的三组每组有四个过滤器。

输入参数

全部折叠

输入数据,指定为一个格式化的dlarray,一个非格式化dlarray或数字数组。当dlX不是一个格式化的dlarray,您必须指定维度标签格式使用“DataFormat”选择。如果dlX是一个数值数组,然后要么权重偏见必须是一个dlarray

卷积作用于维度,您指定使用的空间维度“年代”尺寸标签。您可以指定三个维度dlX作为“年代”维度。

数据类型:|

过滤器,指定为一个格式化的dlarray,一个非格式化dlarray或数字数组。的权重参数指定的大小和价值观过滤器,过滤器的数量以及组分组转置运算的数量。

指定权重为filterSize——- - - - - -numFiltersPerGroup——- - - - - -numChannelsPerGroup——- - - - - -numGroups数组中。

  • filterSize——卷积过滤器的大小。filterSize可以有三个维度,具体取决于输入数据的空间维度的数量。

    输入数据“年代” filterSize
    一维 h,在那里h对应于过滤器的高度
    二维 h——- - - - - -w,在那里hw对应滤波器的高度和宽度,分别
    三维 h——- - - - - -w——- - - - - -d,在那里h,w,d对应的高度、宽度和深度的过滤器,分别

  • numFiltersPerGroup——过滤器应用在每组的数量。

  • numChannelsPerGroup——数量的渠道在每组分组转置运算。numChannelsPerGroup必须等于输入数据的通道数量除以吗numGroups的组。未归类的隆起,numGroups = 1,numChannelsPerGroup通道的数量必须等于输入数据。

  • numGroups——数量的组(可选)。当numGroups > 1,函数执行分组转置运算。当numGroups = 1,函数执行未分组的转置运算;在这种情况下,这个维度是单例模式,可以省略。

如果权重是一个格式化的dlarray标记,它可以有多个空间维度“年代”,一个通道尺寸标注“C”,和其他两个尺寸标注“U”。的数量“年代”尺寸必须匹配的数量“年代”维的输入数据。标签尺寸对应于过滤器规格如下。

过滤器规格 尺寸标签
filterSize “年代”
numFiltersPerGroup “C”
numChannelsPerGroup 第一个“U”
numGroups(可选) 第二个“U”

数据类型:|

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

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

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

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

数据类型:|

名称-值参数

指定可选的逗号分隔条名称,值参数。的名字参数名称和吗价值相应的价值。的名字必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家

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

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

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

  • “S”——空间

  • “C”——频道

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

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

  • “U”——未指明的

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

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

数据类型:字符|字符串

步长为遍历输入数据,指定为逗号分隔组成的“步”和一个数字标量或数值向量。如果您指定“步”作为一个标量,相同的值是用于所有空间维度。如果您指定“步”作为一个相同大小的矢量空间维度的数量的输入数据,矢量值用于相应的空间维度。

的默认值“步”1

例子:“步”,3

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

过滤器膨胀因素,指定为逗号分隔组成的“DilationFactor”和一个以下。

  • 数字标量——相同的膨胀系数值适用于所有空间维度。

  • 数值向量,应用不同的膨胀系数值在每一个空间维度。使用一个向量的大小d,在那里d是空间维度的数量的输入数据。的向量的th元素指定了应用于膨胀因素空间维度。

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

例子:“DilationFactor”, 2

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

种植应用于边缘的数据,指定为逗号分隔组成的“种植”和一个以下。

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

  • 数字标量——同一种植价值应用于所有空间维度的两端。

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

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

例子:“裁剪”、“相同”

数据类型:|

输出参数

全部折叠

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

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

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

扩展功能

介绍了R2019b