文档帮助中心
深度学习颠倒了卷积
海底= dltranspconv (dlX、重量偏差)
海底= dltranspconv (dlX、重量、偏见、DataFormat, FMT)
DLY = dltranspconv(___名称、值)
转置卷积运算上采样特征图。
该函数应用了深度学习的转置卷积运算dlarray数据。如果你想申请内的换位卷积layerGraph对象或层数组,使用下列图层之一:
dlarray
layerGraph
层
transposedConv2dLayer
transposedConv3dLayer
例子
海底= dltranspconv(dlX,权重,偏压)计算输入的深度学习换位卷积dlX使用由定义的过滤器权重,并增加了一个恒定偏压。输入dlX是一个格式化的dlarray与尺寸标签。转置卷积作用于你指定的维度上“年代”和'C'维度。输出海底是一个格式化的dlarray与。相同的维度标签dlX。
海底= dltranspconv(dlX,权重,偏压)
海底
dlX
权重
偏压
“年代”
'C'
海底= dltranspconv(dlX,权重,偏压, 'DATAFORMAT',FMT)还指定尺寸格式FMT当dlX是不是一个格式化dlarray。输出海底是一个未格式化dlarray与。相同的维度顺序dlX。
海底= dltranspconv(dlX,权重,偏压, 'DATAFORMAT',FMT)
FMT
海底= dltranspconv(___名称,值)使用一个或除了在前面的语法的输入参数更名称 - 值对的参数指定的选项。例如,“步”,3设置卷积运算的步幅。
海底= 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。
“步”
2
“DilationFactor”
海底= 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。
FMT, DataFormat”
卷积作用于你指定为空间维度的维度上“年代”尺寸标签。您最多可以指定三个维度dlX作为“年代”维度。
数据类型:单|双
单
双
过滤器,指定为dlarray有或没有标签或数字数组。的权重参数指定过滤器的大小和值,以及用于分组转置卷积的过滤器数量和组数量。
将权重指定为filterSize——- - - - - -numFiltersPerGroup——- - - - - -numChannelsPerGroup——- - - - - -numGroups数组中。
filterSize
numFiltersPerGroup
numChannelsPerGroup
numGroups
filterSize-卷积滤波器的大小。filterSize最多可以有三个维度,具体取决于在输入数据的空间的维数。
numFiltersPerGroup- 过滤器数量将各组内适用。
numChannelsPerGroup-为分组转置卷积在每组内的通道数。numChannelsPerGroup必须等于除以输入数据的信道数numGroups,组数。对于未分组卷积,其中numGroups = 1,numChannelsPerGroup必须等于输入数据中的通道数。
numGroups = 1
numGroups-组数(可选)。当numGroups> 1中,功能执行分组转置卷积。当numGroups = 1中,功能执行取消分组转置卷积;在这种情况下,该尺寸是独立的,并可以被省略。
numGroups> 1
如果权重是一个格式化的dlarray,它可以有多个空间尺寸标记“年代”中,一个通道尺寸标记'C'其他,和最多两个维度标记“U”。的数量“年代”尺寸必须的数量相匹配“年代”输入数据的维度。标签尺寸对应于过滤器规格如下。
“U”
偏置常数,用a表示dlarray向量或dlarray标量,带有或不带有标签,数值向量,或数值标量。
如果偏压是标量或只有单元素维度,则对输出的每个条目应用相同的偏差。
如果偏压的每个元素都有一个非单次维数偏压应用于相应卷积滤波器的偏置是否指定权重。元素的数量偏压必须匹配指定的过滤器的数量权重。
如果偏压是一个格式化的dlarray中,nonsingleton尺寸必须标记一个通道尺寸'C'。
的可选逗号分隔对名称,值参数。名称参数名和值是对应的值。名称必须出现在引号内。可以按任意顺序指定多个名称和值对参数Name1, Value1,…,的家。
名称
值
Name1, Value1,…,的家
“步”,2
“DataFormat”
未格式化的输入数据,指定为逗号分隔的一对组成的维序“DataFormat”和字符数组或字符串FMT它为数据的每个维度提供一个标签。每个字符在FMT必须是下列之一:
“年代”- 空间
'C'- 通道
'B'- 批次(例如,样本和观测)
'B'
“T”- 时间(例如,序列)
“T”
“U”- 未指定
您可以指定标记多个维度“年代”要么“U”。你可以使用标签'C','B'和“T”最多一次。
您必须指定“DataFormat”当输入数据dlX是不是一个格式化dlarray。
例子:“DataFormat”、“SSCB”
“DataFormat”、“SSCB”
数据类型:字符|串
字符
串
遍历输入数据的步长,指定为逗号分隔的对,由“步”和数字标量或数值向量。如果您指定“步”作为标量,相同的值用于所有空间维度。如果您指定“步”作为相同大小的输入数据的空间的维数的矢量,矢量值被用于对应的空间尺寸。
的默认值“步”是1。
1
例子:“步”,3
滤波器膨胀系数,指定为逗号分隔对所组成“DilationFactor”下面的一个。
数值标量-相同的膨胀因子值适用于所有空间维度。
数值向量 - 甲不同膨胀系数值沿着每个空间维度施加。使用大小的矢量d,在那里d是输入数据的空间的维数。的我向量的第一个元素指定应用于的膨胀因子我空间维度。
d
我
使用放大因子来增加输入数据上过滤器的接受域(过滤器可以看到的输入区域)。使用膨胀系数对应于的有效滤光片尺寸filterSize +(filterSize-1)*(dilationFactor-1)。
filterSize +(filterSize-1)*(dilationFactor-1)
例子:“DilationFactor”, 2
“DilationFactor”, 2
“种植”
'相同'
应用于数据边缘的剪裁,指定为逗号分隔的对,包括“种植”下面的一个。
'相同'-设置裁剪,以便当stride时输出大小与输入大小相同1。更一般地,每个空间维度的输出大小为inputSize *步,在那里inputSize是沿空间维度输入的大小。
inputSize *步
inputSize
数值标量-相同的裁剪值应用于所有空间维度的两端。
数值向量 - 甲不同剪切值沿着每个空间维度施加。使用大小的矢量d,在那里d是输入数据的空间的维数。的我矢量指定裁剪施加到开始的第i个元素,并沿着所述端我空间维度。
数值矩阵-不同的裁剪值应用于每个空间维度的开始和结束。使用一个大小为2×-的矩阵d,在那里d是输入数据的空间的维数。元素(1,d)指定裁剪施加到空间维度的开始d。元素(2,d)指定裁剪施加到空间维度的端部d。例如,在二维格式是(前、左;下,右)。
(1,d)
(2,d)
(前、左;下,右)
例子:“裁剪”、“相同”
“裁剪”、“相同”
Feature map,返回作为adlarray。输出海底是否具有与输入相同的基础数据类型dlX。
如果输入数据dlX是一个格式化的dlarray,海底具有相同尺寸的标签dlX。如果输入数据没有格式化dlarray,海底是一个未格式化dlarray或与输入数据维序相同的数字数组。
的大小'C'的通道尺寸海底取决于。的大小权重输入。的大小'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命令。万博1manbetx
选择一个网站,以获得翻译的内容,其中可看到当地的活动和优惠。根据您的位置,我们建议您选择:。
您还可以选择从下面的列表中的网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系