深度学习卷积
卷积运算将滑动滤波器应用于输入数据。使用DLCONV.
用于深度学习卷积、分组卷积和信道可分离卷积的函数。
的DLCONV.
功能适用于深度学习卷积操作dlarray
数据。使用dlarray
通过允许您标记尺寸,对象使高维数据更容易。例如,您可以使用使用的标记对应于空间,时间,频道和批处理尺寸的维度标记“年代”
,“T”
,'C'
,'B'
标签,分别。对于未指定的和其他尺寸,请使用“U”
标签。为dlarray
通过特定尺寸运行的对象功能,可以通过格式化维度标签来指定维度标签dlarray
对象,或使用'datomformat'
选择。
请注意
在a内应用卷积layerGraph
对象或层
数组,使用以下层之一:
将深度学习卷积操作应用于格式化海底
= DLCONV(dlX
,权重
,偏见
)dlarray
对象dlX
.该函数使用滑动卷积滤波器权重
然后加上常数偏见
.输出海底
是一个格式化的dlarray
物体格式相同dlX
.
默认情况下,该函数最多可以进行三个维度的卷积dlX
标记为“年代”
(空间)。在标记的尺寸上旋转“T”
(时间),指定权重
与A.“T”
使用格式化的dlarray
对象或使用“WeightsFormat”
选择。
对于未格式化的输入数据,使用'datomformat'
选择。
创建一个格式化的dlarray
包含具有3个通道的批次128个28-×28图像的对象。指定的格式'SSCB'
(空间,空间,频道,批量)。
miniBatchSize = 128;inputSize = [28 28];numChannels = 3;X =兰特(inputSize (1) inputSize (2), numChannels, miniBatchSize);dlX = dlarray (X,'SSCB');
查看输入数据的大小和格式。
大小(dlX)
ans =1×428 28 3 128
dim (dlX)
ans = ' SSCB '
初始化二维卷积的权值和偏差。对于权重,指定64个3 × 3过滤器。对于偏差,指定一个零向量。
filterSize = [3 3];numFilters = 64;重量=兰德(filterSize (1) filterSize (2), numChannels, numFilters);偏见= 0(1、numFilters);
使用2-D卷积使用DLCONV.
函数。
海底= dlconv (dlX、重量偏差);
查看输出的大小和格式。
大小(海底)
ans =1×426 26 64 128
dim(海底)
ans = ' SSCB '
将输入数据分成三组,每组由两个通道组成。每组应用四个过滤器。
将输入数据创建为10个尺寸为100 × 100、有6个通道的观测数据。
高度= 100;宽度= 100;频道= 6;numobservations = 10;x = rand(高度,宽度,频道,numobservations);dlX = dlarray (X,'SSCB');
初始化卷积过滤器。指定三组卷积,每组对输入数据的两个通道应用四个卷积滤波器。
filterHeight = 8;filterWidth = 8;numChannelsPerGroup = 2;numFiltersPerGroup = 4;numGroups = 3;重量=兰德(filterHeight filterWidth、numChannelsPerGroup numFiltersPerGroup, numGroups);
初始化偏差项。
BIAS = RAND(NUMFilterspergoup * numgroups,1);
执行卷积。
海底= dlconv (dlX、重量偏差);大小(海底)
ans =1×493 93 12 10
dim(海底)
ans = ' SSCB '
卷积输出的12个通道代表三组卷积,每组4个滤波器。
将输入数据分离到各个通道,并分别对每个通道进行卷积。
将输入数据创建为一个大小为64 × 64和10个通道的单个观测数据。将数据创建为未格式化的dlarray
.
身高= 64;宽度= 64;渠道= 10;X =兰德(高度、宽度、渠道);dlX = dlarray (X);
初始化卷积过滤器。指定一个未完成的卷积,将单个卷积应用于输入数据的所有三个通道。
filterHeight = 8;filterWidth = 8;numChannelsPerGroup = 1;numFiltersPerGroup = 1;numGroups =渠道;重量=兰德(filterHeight filterWidth、numChannelsPerGroup numFiltersPerGroup, numGroups);
初始化偏差项。
BIAS = RAND(NUMFilterspergoup * numgroups,1);
执行卷积。使用该输入数据的尺寸标签指定'datomformat'
选择。
海底= dlconv (dlX、权重、偏见,'datomformat',SSC的);大小(海底)
ans =1×357 57 10
每个通道单独卷积,因此输出中有10个通道。
创建一个格式化的dlarray
对象,包含128个长度为512的序列,包含5个特征。指定的格式“认知行为治疗”
(通道、批量、时间)。
numChannels = 5;miniBatchSize = 128;sequenceLength = 512;X =兰德(numChannels miniBatchSize sequenceLength);dlX = dlarray (X,“认知行为治疗”);
初始化1-D卷积的权重和偏置。对于权重,使用34的过滤器大小指定64个过滤器。对于偏置,指定零的向量。
filterSize = 3;numFilters = 64;重量=兰德(filterSize numChannels numFilters);偏见= 0(1、numFilters);
使用1-D卷积使用DLCONV.
函数。在上面卷积“T”
(时间)维度的输入数据,指定权重格式'tcu'
(时间,频道,未指定)使用“WeightsFormat”
选择。
海底= dlconv (dlX、权重、偏见,“WeightsFormat”,'tcu');
查看输出的大小和格式。
大小(海底)
ans =1×364 128 510
dim(海底)
ans =“认知行为治疗”
dlX
- - - - - -输入数据dlarray
|数字数组输入数据,指定为格式化的dlarray
,一个非格式化dlarray
或数字数组。
如果dlX
是一个非格式化dlarray
或数字数组,则必须使用'datomformat'
选择。如果dlX
是数字数组吗权重
或偏见
必须是一个dlarray
对象。
默认情况下,该函数最多可以进行三个维度的卷积dlX
标记为“年代”
(空间)。在标记的尺寸上旋转“T”
(时间),指定权重
与A.“T”
使用格式化的dlarray
对象或使用“WeightsFormat”
选择。
权重
- - - - - -卷积滤波器dlarray
|数字数组卷积过滤器,指定为格式化dlarray
,一个非格式化dlarray
或数字数组。
权重的大小和格式取决于任务的类型。如果权重
是一个非格式化dlarray
或者一个数字数组,然后是大小和形状权重
取决于“WeightsFormat”
选择。
下表描述了各种任务的权重的大小和格式。您可以使用格式化来指定具有任何顺序的维数数组dlarray
对象或使用“WeightsFormat”
选择。当权重具有具有相同标签的多个维度时(例如,多个标注的维度“年代”
),则这些尺寸必须按照表中描述的顺序排列。
任务 | 所需的尺寸 | 大小 | 例子 | |
---|---|---|---|---|
权重 | 格式 | |||
1-D卷积 | “年代” (空间)或“T” (时间) |
过滤器的大小 |
|
'scu' (未指明的空间、通道) |
'C' (通道) |
渠道数量 | |||
“U” (不明) |
数量的过滤器 | |||
一维分组卷积 | “年代” (空间)或“T” (时间) |
过滤器的大小 |
|
'苏u' (空间,渠道,未指定,未指定) |
'C' (通道) |
每组渠道数量 | |||
第一的“U” (不明) |
每组过滤器数量 | |||
第二个“U” (不明) |
数量的组 | |||
2-D卷积 | 第一的“年代” (空间) |
过滤器的高度 |
|
“SSCU” (空间,空间,频道,未指定) |
第二个“年代” (空间)或“T” (时间) |
滤波器的宽度 | |||
'C' (通道) |
渠道数量 | |||
“U” (不明) |
数量的过滤器 | |||
2-D分组卷积 | 第一的“年代” (空间) |
过滤器的高度 |
|
'sscuu' (spatial, spatial, channel,未指定,未指定) |
第二个“年代” (空间)或“T” (时间) |
滤波器的宽度 | |||
'C' (通道) |
每组渠道数量 | |||
第一的“U” (不明) |
每组过滤器数量 | |||
第二个“U” (不明) |
数量的组 | |||
三维卷积 | 第一的“年代” (空间) |
过滤器的高度 |
|
'ssscu' (spatial, spatial, spatial, channel,未指定) |
第二个“年代” (空间) |
滤波器的宽度 | |||
第三“年代” (空间)或“T” (时间) |
过滤器深度 | |||
'C' (通道) |
渠道数量 | |||
“U” (不明) |
数量的过滤器 |
对于通道 - 明智的可分离(也称为深度明智的可分离)卷积,使用具有等于通道数量的组数的分组卷积。
提示
默认情况下,该函数最多可以进行三个维度的卷积dlX
标记为“年代”
(空间)。在标记的尺寸上旋转“T”
(时间),指定权重
与A.“T”
使用格式化的dlarray
对象或使用“WeightsFormat”
选择。
偏见
- - - - - -偏差常数dlarray
|数值向量|数字标量指定为格式化的偏置常数dlarray
,一个非格式化dlarray
、数字向量或数字标量。
如果偏见
为标量,则对每个输出应用相同的偏差。
如果偏见
有一个不明的项目尺寸,然后是每个元素偏见
是否将偏差应用到指定的卷积滤波器上权重
.元素的数量偏见
必须匹配指定的过滤器数量权重
.
如果偏见
是0
,则偏置项被禁用,在卷积运算过程中不添加偏置项。
如果偏见
是一个格式化的dlarray
,则非单例维度必须是带标签的通道维度'C'
(通道)。
指定可选的逗号分隔的对名称,值
论点。名称
参数名和价值
为对应值。名称
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
“DilationFactor”,2
设置每个卷积滤波器的膨胀因子为2
.
'datomformat'
- - - - - -未格式化数据的维度顺序未格式化输入数据的维度顺序,指定为逗号分隔对,由'datomformat'
和一个字符矢量或标量FMT
为数据的每个维度提供一个标签。
当指定的格式dlarray
对象中,每个字符为数据的每个维度提供一个标签,并且必须是以下内容之一:
“年代”
- 空间
'C'
- 渠道
'B'
-批次(例如,样品和观察)
“T”
-时间(例如,序列的时间步长)
“U”
- 未指定
您可以指定多个标注的维度“年代”
或“U”
.你可以使用标签'C'
,'B'
,“T”
最多一次。
您必须指定'datomformat'
当输入数据未格式化时dlarray
.
例子:“DataFormat”、“SSCB”
数据类型:char
|细绳
“WeightsFormat”
- - - - - -权重的维数顺序权重的维度顺序,指定为逗号分隔对组成“WeightsFormat”
和一个字符向量或字符串标量,为权重的每个维度提供标签。
的默认值“WeightsFormat”
取决于任务:
任务 | 默认的 |
---|---|
1-D卷积 | 'scu' (未指明的空间、通道) |
一维分组卷积 | '苏u' (空间,渠道,未指定,未指定) |
2-D卷积 | “SSCU” (空间,空间,频道,未指定) |
2-D分组卷积 | 'sscuu' (spatial, spatial, channel,未指定,未指定) |
三维卷积 | 'ssscu' (spatial, spatial, spatial, channel,未指定) |
支持的维金宝app度标签组合取决于卷积的类型,有关更多信息,请参见权重
论点。
提示
默认情况下,该函数最多可以进行三个维度的卷积dlX
标记为“年代”
(空间)。在标记的尺寸上旋转“T”
(时间),指定权重
与A.“T”
使用格式化的dlarray
对象或使用“WeightsFormat”
选择。
例子:“WeightsFormat”、“TCU的
“步”
- - - - - -遍历输入数据的步长1
(默认)|数字标量|数值向量遍历输入数据的步长,指定为逗号分隔的对,由“步”
和数字标量或数字矢量。如果您指定“步”
作为标量,所有空间维度都使用相同的值。如果您指定“步”
作为与输入数据的空间维数相同大小的向量,向量值用于对应的空间维数。
的默认值“步”
是1
.
例子:“步”,3
数据类型:单身的
|双倍的
'膨胀因子'
- - - - - -过滤器膨胀系数1
(默认)|数字标量|数值向量过滤器膨胀系数,指定为逗号分隔对,由'膨胀因子'
下面是其中之一。
数值标量 - 施加相同的扩张因子值,适用于所有空间尺寸。
数值向量-在每个空间维度上应用不同的膨胀因子值。使用大小向量d
, 在哪里d
是输入数据的空间维数。的我
向量的第Th元素指定应用于的膨胀因子我
空间维度。
使用膨胀因子来增加过滤器的接受域(过滤器可以看到的输入区域)对输入数据。使用膨胀系数对应的有效过滤器尺寸为filterSize + (filterSize-1) * (dilationFactor-1)
.
例子:“DilationFactor”,2
数据类型:单身的
|双倍的
'填充'
- - - - - -应用于数据边缘的填充的大小0
(默认)|“相同”
|数字标量|数值向量|数字矩阵应用于数据边缘的填充大小,指定为逗号分隔对,由'填充'
以及以下其中之一:
“相同”
- 设置填充尺寸,使得输出大小与进度时的输入大小相同1
.更一般地说,每个空间维度的输出大小为装天花板(inputSize /步)
, 在哪里输入
是沿空间维度输入的大小。
数字标量-在所有空间维度的两端应用相同数量的填充。
数字向量——沿着每个空间维度应用不同数量的填充。使用大小向量d
, 在哪里d
是输入数据的空间维数。的我
向量的第Th元素指定沿我
空间维度。
数字矩阵 - 将不同量的填充应用于每个空间尺寸的开始和结束。使用大小矩阵2-by-d
, 在哪里d
是输入数据的空间维数。的元素(d)
指定应用于空间维度开始的填充的大小d
.的元素(2,D)
指定应用于空间维度末端的填充的大小d
.例如,在2-D中,格式是(前、左;下,右)
.
例子:“填充”,“相同”
数据类型:单身的
|双倍的
'paddingsvalue'
- - - - - -值到填充数据“symmetric-include-edge”
|'对称排除-Edge'
|“复制”
值来填充数据,指定为以下其中之一:
PaddingValue |
描述 | 例子 |
---|---|---|
标量子 | 用指定的标量值填充。 |
|
“symmetric-include-edge” |
焊盘使用镜像值的输入,包括边缘值。 |
|
'对称排除-Edge' |
使用输入的镜像值,不包括边沿值。 |
|
“复制” |
使用输入的重复边框元素填充 |
|
的DLCONV.
函数对输入数据应用滑动卷积滤波器。的DLCONV.
函数支持一维、二维金宝app或三维空间或一维时间的卷积。要了解更多关于深度学习卷积的知识,请参见定义卷积的层在convolution2dLayer
参考页面。
使用说明和限制:
当以下输入参数中至少有一个是GPUArray.
或者一个dlarray
使用类型的底层数据GPUArray.
,此功能在GPU上运行。
dlX
权重
偏见
有关更多信息,请参阅在GPU上运行MATLAB函数(并行计算工具箱).
你点击一个链接对应于这个MATLAB命令:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。