文件帮助中心文件
深入学习转置卷积
海底= dltranspconv (dlX、重量偏差)
海底= dltranspconv (dlX、重量、偏见、DataFormat, FMT)
海底= dltranspconv (___名称,价值)
转置卷积操作上采样特征映射。
笔记
该功能适用于换档卷积操作的深度学习dlarray.数据。如果你想在a内应用转置卷积layerGraph对象或者层数组,使用以下图层之一:
dlarray.
layerGraph
层
transposedConv2dLayer
transposedconv3dlayer.
例子
d= dltranspconv (DLX.那权重那偏见)计算输入的深度学习转置卷积DLX.使用定义的过滤器权重,并添加一个常数偏见.输入DLX.是一个格式化的dlarray.与尺寸标签。转置卷积作用于你指定的维数'和“C”方面。输出d是一个格式化的dlarray.尺寸标签与DLX..
d= dltranspconv (DLX.那权重那偏见)
d
DLX.
权重
偏见
'
“C”
d= dltranspconv (DLX.那权重那偏见、“DataFormat”FMT)还指定维度格式FMT.当DLX.不是格式化的dlarray..输出d是一个非格式化dlarray.尺寸顺序和DLX..
d= dltranspconv (DLX.那权重那偏见、“DataFormat”FMT)
FMT.
d= dltranspconv (___名称,价值)除了前面语法中的输入参数外,还使用一个或多个名称-值对参数指定选项。例如,'stride',3设置卷积操作的步幅。
d= dltranspconv (___名称,价值)
名称,价值
'stride',3
全部收缩
对图像进行卷积,然后使用转置卷积来调整卷积图像的大小,使其与原始图像的大小相同。
导入图像数据并将其转换为adlarray..
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.
'走吧'
2
“DilationFactor”
dly = 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(dly,proceivestc,biacstc,'走吧'2,“DilationFactor”,3);
显示转置卷积后的图像。
z =提取数据(DLZ);imshow(Rescale(z))
在转换卷积之后比较原始图像,卷积图像和图像的大小。
sizeX大小(X) =
sizeX =1×3640 960 3
sizey = size(y)
sizeY =1×2307 467.
sizez = size(z)
sizeZ =1×3640 960 3
转置卷积将卷积数据上采样到原始输入数据的大小。
将转置卷积应用于三组输入数据,每组两个通道。每组应用四个过滤器。
使用六个通道创建输入数据100乘100的10个观察。
身高= 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 10
昏暗(dly)
ans ='sscb'
卷积输出的12个通道代表了每组四个过滤器的三组转换卷积。
输入数据,指定为dlarray.有或没有维度标签或数字数组。什么时候DLX.不是格式化的dlarray.,则必须使用FMT, DataFormat”.如果DLX.是一个数字数组,至少是权重或偏见必须是A.dlarray..
FMT, DataFormat”
卷积在尺寸上使用您使用的空间尺寸指定'尺寸标签。您可以指定最多三个维度DLX.作为'方面。
数据类型:单|双
单
双
过滤器,指定为dlarray.有或没有标签或数字阵列。这权重参数指定过滤器的大小和值,以及分组转换卷积的筛选器数量和组数。
将权重指定为a过滤——- - - - - -numFiltersPerGroup——- - - - - -numchannelspergroup.——- - - - - -numgroups.大批。
过滤
numFiltersPerGroup
numchannelspergroup.
numgroups.
过滤- 卷积滤波器的大小。过滤最多可以有三个维度,这取决于输入数据中的空间维度的数量。
numFiltersPerGroup-每个组内应用的过滤器数量。
numchannelspergroup.- 用于分组转换卷积的每个组内的通道数。numchannelspergroup.必须等于输入数据中的通道数除以numgroups.,组的数量。对于未完成的卷积,在哪里numGroups = 1那numchannelspergroup.必须等于输入数据中的通道数。
numGroups = 1
numgroups.- 组数(可选)。什么时候numGroups > 1时,函数进行分组转置卷积。什么时候numGroups = 1时,函数执行非分组转置卷积;在本例中,这个维度是单例的,可以省略。
numGroups > 1
如果权重是一个格式化的dlarray.,它可以标记多个空间维度',一个通道尺寸标记“C”,以及至多两个标注的其他维度'U'.的数量'尺寸必须匹配的数量'输入数据的维度。标签尺寸与过滤器规格如下所示。
'U'
偏差常量,指定为adlarray.矢量或dlarray.标量或没有标签,数字矢量或数字标量。
如果偏见是标量或仅具有单级尺寸,对输出的每个条目应用相同的偏差。
如果偏见有一个非单维,每个元素偏见是否适用于指定的相应卷积滤波器权重.元素的数量偏见必须匹配所指定的过滤器数权重.
如果偏见是一个格式化的dlarray.,非单例维度必须是标记的通道维度“C”.
指定可选的逗号分离对名称,价值参数。的名字是参数名称和价值为对应值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家.
的名字
价值
Name1, Value1,…,的家
'stride',2
“DataFormat”
未格式化输入数据的维度顺序,指定为逗号分隔对,由“DataFormat”以及字符向量或字符串标量FMT.为数据的每个维度提供标签。
在指定格式的时候dlarray.对象中,每个字符为数据的每个维度提供一个标签,并且必须是以下内容之一:
'——空间
“C”——频道
“B”-批次(例如,样品和观察)
“B”
'T'-时间(例如,序列的时间步长)
'T'
'U'——未指明的
您可以指定多个标注的维度'或'U'.你可以使用标签“C”那“B”,'T'最多一次。
您必须指定“DataFormat”当输入数据不是格式化时dlarray..
例子:'dataformat','sscb'
'dataformat','sscb'
数据类型:字符|字符串
字符
字符串
1
遍历输入数据的步长,指定为包括的逗号分隔对'走吧'和数字标量或数字向量。如果您指定'走吧'作为标量,相同的值用于所有空间尺寸。如果您指定'走吧'作为与输入数据的空间维数相同大小的向量,向量值用于对应的空间维数。
的默认值'走吧'是1.
例子:'stride',3
过滤器膨胀系数,指定为逗号分隔对,由“DilationFactor”以及以下之一。
数值标量-对所有空间维度应用相同的膨胀因子值。
数值向量-在每个空间维度上应用不同的膨胀因子值。使用大小向量D.,在那里D.是输入数据的空间维数。这一世向量的第Th元素指定应用于的膨胀因子一世空间维度。
D.
一世
使用扩张因子来增加滤波器的接收场(过滤器可以看到的输入区域)在输入数据上。使用扩张因子对应于有效的滤波器尺寸filterSize + (filterSize-1) * (dilationFactor-1).
filterSize + (filterSize-1) * (dilationFactor-1)
例子:“DilationFactor”,2
“DilationFactor”,2
“种植”
“相同”
裁剪应用于数据的边缘,指定为逗号分隔对组成“种植”以及以下之一。
“相同”-设置裁剪,以便当步幅为时,输出大小与输入大小相同1.更一般地,每个空间维度的输出大小是inputSize *步,在那里inputSize是沿空间尺寸的输入的大小。
inputSize *步
inputSize
数字标量-对所有空间维度的两端应用相同的裁剪值。
数字向量——沿着每个空间维度应用不同的裁剪值。使用大小向量D.,在那里D.是输入数据的空间维数。这一世向量的第Th元素指定了沿着的开始和结束的裁剪一世空间维度。
数字矩阵-不同的裁剪值应用于每个空间维度的开始和结束。使用大小为2 × -的矩阵D.,在那里D.是输入数据的空间维数。的元素(d)指定应用于空间维度开始部分的裁剪D..的元素(2 d)指定应用于空间维度末端的裁剪D..例如,在二维中,格式为(前、左;下,右).
(d)
(2 d)
(前、左;下,右)
例子:“裁剪”、“相同”
“裁剪”、“相同”
特征映射,作为一个返回dlarray..输出d具有与输入相同的底层数据类型DLX..
如果输入数据DLX.是一个格式化的dlarray.那d有相同的尺寸标签DLX..如果输入数据没有格式化dlarray.那d是一个非格式化dlarray.或数字阵列与输入数据相同的维度顺序。
尺寸“C”通道尺寸d取决于权重输入。尺寸“C”维度的输出y是尺寸大小的产物numFiltersPerGroup和numgroups.在权重论点。如果权重是一个格式化的dlarray.,这个产品和这个产品的尺寸是一样的“C”尺寸和第二'U'维度。
y
使用注意事项及限制:
当以下至少一个输入参数中是一个gpuArray或者dlarray.具有类型的底层数据gpuArray,此功能在GPU上运行。
gpuArray
有关更多信息,请参见在GPU上运行matlab函数(并行计算工具箱).
avgpool|dlarray.|dlconv|dlfeval|Dlgradient.|maxpool|maxunpool
avgpool
dlconv
dlfeval
Dlgradient.
maxpool
maxunpool
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。
与当地办事处联系