dltranspconv

深度学习颠倒了卷积

描述

转置卷积运算上采样特征图。

请注意

该函数应用了深度学习的转置卷积运算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由(DLY);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 = SIZE(X)
sizeX =1×3640 960 3
sizeY =大小(Y)
sizeY =1×2307 467
sizeZ =大小(Z)
sizeZ =1×3640 960 3

将卷积后的数据采样到原始输入数据的大小。

应用转置卷积到所述输入数据中三组,每组两个通道。应用每组四个过滤器。

用6个通道将输入数据创建为10个大小为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);

执行转置卷积。

DLY = dltranspconv(DLX,重量,偏压);大小(DLY)
ans =1×4107 107 12 10
dim(海底)
ans = ' SSCB '

卷积输出的12个通道代表三组转置卷积,每组4个滤波器。

输入参数

全部折叠

输入数据,指定为dlarray有或没有维度标签或数字数组。当dlX是不是一个格式化dlarray,必须使用指定尺寸的标签格式FMT, DataFormat”。如果dlX是一个数值数组,中的至少一个权重要么偏压必须是一个dlarray

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

数据类型:|

过滤器,指定为dlarray有或没有标签或数字数组。的权重参数指定过滤器的大小和值,以及用于分组转置卷积的过滤器数量和组数量。

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

  • filterSize-卷积滤波器的大小。filterSize最多可以有三个维度,具体取决于在输入数据的空间的维数。

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

  • numFiltersPerGroup- 过滤器数量将各组内适用。

  • numChannelsPerGroup-为分组转置卷积在每组内的通道数。numChannelsPerGroup必须等于除以输入数据的信道数numGroups,组数。对于未分组卷积,其中numGroups = 1,numChannelsPerGroup必须等于输入数据中的通道数。

  • numGroups-组数(可选)。当numGroups> 1中,功能执行分组转置卷积。当numGroups = 1中,功能执行取消分组转置卷积;在这种情况下,该尺寸是独立的,并可以被省略。

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

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

数据类型:|

偏置常数,用a表示dlarray向量或dlarray标量,带有或不带有标签,数值向量,或数值标量。

  • 如果偏压是标量或只有单元素维度,则对输出的每个条目应用相同的偏差。

  • 如果偏压的每个元素都有一个非单次维数偏压应用于相应卷积滤波器的偏置是否指定权重。元素的数量偏压必须匹配指定的过滤器的数量权重

如果偏压是一个格式化的dlarray中,nonsingleton尺寸必须标记一个通道尺寸'C'

数据类型:|

名称-值对的观点

的可选逗号分隔对名称,值参数。名称参数名和是对应的值。名称必须出现在引号内。可以按任意顺序指定多个名称和值对参数Name1, Value1,…,的家

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

未格式化的输入数据,指定为逗号分隔的一对组成的维序“DataFormat”和字符数组或字符串FMT它为数据的每个维度提供一个标签。每个字符在FMT必须是下列之一:

  • “年代”- 空间

  • 'C'- 通道

  • 'B'- 批次(例如,样本和观测)

  • “T”- 时间(例如,序列)

  • “U”- 未指定

您可以指定标记多个维度“年代”要么“U”。你可以使用标签'C','B'“T”最多一次。

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

例子:“DataFormat”、“SSCB”

数据类型:字符|

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

的默认值“步”1

例子:“步”,3

数据类型:|

滤波器膨胀系数,指定为逗号分隔对所组成“DilationFactor”下面的一个。

  • 数值标量-相同的膨胀因子值适用于所有空间维度。

  • 数值向量 - 甲不同膨胀系数值沿着每个空间维度施加。使用大小的矢量d,在那里d是输入数据的空间的维数。的向量的第一个元素指定应用于的膨胀因子空间维度。

使用放大因子来增加输入数据上过滤器的接受域(过滤器可以看到的输入区域)。使用膨胀系数对应于的有效滤光片尺寸filterSize +(filterSize-1)*(dilationFactor-1)

例子:“DilationFactor”, 2

数据类型:|

应用于数据边缘的剪裁,指定为逗号分隔的对,包括“种植”下面的一个。

  • '相同'-设置裁剪,以便当stride时输出大小与输入大小相同1。更一般地,每个空间维度的输出大小为inputSize *步,在那里inputSize是沿空间维度输入的大小。

  • 数值标量-相同的裁剪值应用于所有空间维度的两端。

  • 数值向量 - 甲不同剪切值沿着每个空间维度施加。使用大小的矢量d,在那里d是输入数据的空间的维数。的矢量指定裁剪施加到开始的第i个元素,并沿着所述端空间维度。

  • 数值矩阵-不同的裁剪值应用于每个空间维度的开始和结束。使用一个大小为2×-的矩阵d,在那里d是输入数据的空间的维数。元素(1,d)指定裁剪施加到空间维度的开始d。元素(2,d)指定裁剪施加到空间维度的端部d。例如,在二维格式是(前、左;下,右)

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

数据类型:|

输出参数

全部折叠

Feature map,返回作为adlarray。输出海底是否具有与输入相同的基础数据类型dlX

如果输入数据dlX是一个格式化的dlarray,海底具有相同尺寸的标签dlX。如果输入数据没有格式化dlarray,海底是一个未格式化dlarray或与输入数据维序相同的数字数组。

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

扩展功能

介绍了R2019b