深度学习卷积
卷积运算将滑动滤波器应用于输入数据。使用dlconv
功能深度学习卷积,分组卷积和通道明智的可分离卷积。
这个dlconv
函数应用深度学习卷积运算dlarray
数据使用dlarray
对象允许您标记维度,从而更容易地处理高维数据。例如,可以使用。标记空间维度、时间维度、通道维度和批处理维度“S”
,“T”
,“C”
, 和“B”
标签。对于未指定尺寸和其他尺寸,请使用“U”
标签。为了dlarray
对象函数在特定维度上操作时,可以通过格式化dlarray
对象,或使用数据格式
选项。
将深度学习卷积操作应用于格式化的对象德利
= dlconv (dlX
,重量
,偏见
)dlarray
对象dlX
。该函数使用由定义的滑动卷积滤波器重量
并加上常数偏见
.输出德利
是一个格式化的dlarray
对象的相同格式dlX
.
该功能默认情况下,在卷积最多的三个维度dlX
标签'S'
(空间)。在标注的维度上进行卷积“不”
(时间),指定重量
与一个“不”
使用格式化的dlarray
对象或通过使用“WeightsFormat”
选项。
对于未格式化的输入数据,请使用“DataFormat”
选项。
创建一个格式化dlarray
对象包含一批128 28 × 28图像与3通道。指定格式“SSCB”
(spatial, spatial, channel, batch)。
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
DIMS(DLX)
ANS = 'SSCB'
初始化二维卷积的权值和偏差。对于权重,指定64个3 × 3过滤器。对于偏差,指定一个零向量。
filterSize = [3 3];numFilters = 64;权重=兰特(filterSize(1),filterSize(2),numChannels,numFilters);偏压=零(1,numFilters);
应用2-D卷积dlconv
函数。
dlY=dlconv(dlX、权重、偏差);
查看输出的大小和格式。
尺寸(dlY)
ans=1×426 26 64 128
DIMS(DLY)
ANS = 'SSCB'
将输入数据卷积为三组,每组两个通道。每组应用四个过滤器。
将输入数据创建为10个尺寸为100 × 100、有6个通道的观测数据。
身高= 100;宽度= 100;渠道= 6;numObservations = 10;X =兰德(高度、宽度、通道numObservations);DLX = dlarray(X,“SSCB”);
初始化卷积滤波器。指定三组卷积,每组对输入数据的两个通道应用四个卷积滤波器。
filterHeight=8;filterWidth=8;numChannelsPerGroup=2;numFiltersPerGroup=4;numGroups=3;weights=rand(filterHeight,filterWidth,numChannelsPerGroup,numFiltersPerGroup,numGroups);
初始化偏差项。
偏见=兰德(numFiltersPerGroup * numGroups, 1);
执行卷积。
dlY=dlconv(dlX、重量、偏差);尺寸(dlY)
ans=1×493 93 12 10
DIMS(DLY)
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);
初始化偏差项。
偏见=兰德(numFiltersPerGroup * numGroups, 1);
执行卷积。属性指定输入数据的维度标签“DataFormat”
选项。
dlY=dlconv(dlX、重量、偏差、,“DataFormat”,“SSC”);尺寸(dlY)
ans=1×357 57 10
每个通道单独卷积,所以输出中有10个通道。
创建一个格式化dlarray
对象包含含有5个特征长度为512的128个序列。指定格式'CBT'
(信道,批次,时间)。
numChannels=5;miniBatchSize=128;sequenceLength=512;X=rand(numChannels,miniBatchSize,sequenceLength);dlX=dlarray(X,'CBT');
初始化一维卷积的权值和偏差。对于权重,指定64个过滤器,过滤器大小为3。对于偏差,指定一个零向量。
filterSize = 3;numFilters = 64;权重=兰特(filterSize,numChannels,numFilters);偏压=零(1,numFilters);
应用一维卷积dlconv
函数。在上面卷积“不”
(时间)输入数据的维度,指定权重格式“TCU”
(时间、频道,未指定)使用“WeightsFormat”
选项。
dlY=dlconv(dlX、重量、偏差、,“WeightsFormat”,“TCU”);
查看输出的大小和格式。
尺寸(dlY)
ans=1×364 128 510
DIMS(DLY)
ANS = 'CBT'
dlX
—输入数据dlarray
|数字数组输入数据,指定为格式化的dlarray
,未格式化dlarray
,或数字数组。
如果dlX
是一个未格式化dlarray
或数字数组,则必须使用“DataFormat”
选项。如果dlX
是一个数字数组,则重量
或者偏见
必须是dlarray
目的。
该功能默认情况下,在卷积最多的三个维度dlX
标签'S'
(空间)。在标注的维度上进行卷积“不”
(时间),指定重量
与一个“不”
使用格式化的dlarray
对象或通过使用“WeightsFormat”
选项。
重量
—卷积过滤器dlarray
|数字数组卷积过滤器,指定为格式化dlarray
,未格式化dlarray
,或数字数组。
权重的大小和格式取决于任务的类型。如果重量
是一个未格式化dlarray
或数字数组,则尺寸和形状重量
取决于“WeightsFormat”
选项。
下表描述的权重来完成各项任务的大小和格式。您可以指定任何顺序维度的数组使用格式化dlarray
对象或使用“WeightsFormat”
选项。当配重具有与所述相同的标签多个维度(例如,多个维度标记'S'
),那么这些尺寸必须在如在该表中描述的排序。
任务 | 需要的尺寸 | 大小 | 实例 | |
---|---|---|---|---|
砝码 | 格式 | |||
一维卷积 | 'S' (空间)或“不” (时间) |
滤镜尺寸 |
|
“并” (空间,通道,未指定) |
“C” (通道) |
数量的渠道 | |||
“你” (未指明) |
数量的过滤器 | |||
一维分组卷积 | 'S' (空间)或“不” (时间) |
滤镜尺寸 |
|
“SCUU” (空间、通道、未指定、未指定) |
“C” (通道) |
每个组的频道数 | |||
第一个“你” (未指明) |
每组过滤器的数量 | |||
第二个“你” (未指明) |
组数 | |||
二维卷积 | 第一个'S' (空间) |
过滤高度 |
|
“SSCU” (空间,空间,通道,未指定) |
第二个'S' (空间)或“不” (时间) |
过滤器宽度 | |||
“C” (通道) |
数量的渠道 | |||
“你” (未指明) |
数量的过滤器 | |||
二维卷积分组 | 第一个'S' (空间) |
过滤高度 |
|
“SSCUU” (spatial, spatial, channel,未指定,未指定) |
第二个'S' (空间)或“不” (时间) |
过滤器宽度 | |||
“C” (通道) |
每个组的频道数 | |||
第一个“你” (未指明) |
每组过滤器的数量 | |||
第二个“你” (未指明) |
组数 | |||
三维卷积 | 第一个'S' (空间) |
过滤高度 |
|
“SSSCU” (空间、空间、空间、通道,未指定) |
第二个'S' (空间) |
过滤器宽度 | |||
第三'S' (空间)或“不” (时间) |
过滤器深度 | |||
“C” (通道) |
数量的渠道 | |||
“你” (未指明) |
数量的过滤器 |
对于信道可分(也称为深度可分)卷积,使用组数等于信道数的分组卷积。
提示
该功能默认情况下,在卷积最多的三个维度dlX
标签'S'
(空间)。在标注的维度上进行卷积“不”
(时间),指定重量
与一个“不”
使用格式化的dlarray
对象或通过使用“WeightsFormat”
选项。
偏见
—偏见常数dlarray
|数字矢量|数字标量偏压恒定,指定为格式化dlarray
,未格式化dlarray
,数值向量或数值标量。
如果偏见
是一个标量,那么相同的偏压被施加到每一个输出。
如果偏见
有一个非单维,那么每个元素偏见
应用于相应卷积滤波器的偏差是否由重量
.的元件的数目偏见
必须与指定的筛选器数匹配重量
.
如果偏见
是0
,则禁用偏置项,并且在卷积运算期间不添加偏置。
如果偏见
是一个格式化的dlarray
,则非Singleton标注必须是带标签的通道标注“C”
(频道)。
指定可选的逗号分隔的字符对名称、值
参数。的名字
是参数名和价值
是相应的价值。的名字
必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家
.
“DilationFactor”,2
设置扩张因子为每个卷积滤波器来2.
.
数据格式
—未格式化数据的维序未格式化的输入数据,指定为字符向量或标量的字符串的维序FMT
提供用于数据的每个维度的标签。
当您指定的格式dlarray
对象,每个字符提供了用于数据的每个维度的标签,并且必须是下列之一:
“S”
——空间
“C”
——频道
“B”
- 批次(例如,样本和观测)
“T”
- 时间(例如,序列的时间步长)
“U”
——未指明的
您可以指定标记多个维度“S”
或者“U”
.你可以使用标签“C”
,“B”
, 和“T”
最多一次。
您必须指定数据格式
当输入数据不是格式化的dlarray
.
数据类型:字符
|字符串
WeightsFormat
—权重的维数顺序权重的尺寸顺序,指定为逗号分隔对,由“WeightsFormat”
以及为权重的每个维度提供标签的字符向量或字符串标量。
的默认值“WeightsFormat”
取决于任务:
任务 | 默认 |
---|---|
一维卷积 | “并” (空间,通道,未指定) |
一维分组卷积 | “SCUU” (空间、通道、未指定、未指定) |
二维卷积 | “SSCU” (空间,空间,通道,未指定) |
二维卷积分组 | “SSCUU” (spatial, spatial, channel,未指定,未指定) |
三维卷积 | “SSSCU” (空间、空间、空间、通道,未指定) |
尺寸标签万博1manbetx的支持的组合取决于卷积的类型,以了解更多信息,请参阅重量
论点。
提示
该功能默认情况下,在卷积最多的三个维度dlX
标签'S'
(空间)。在标注的维度上进行卷积“不”
(时间),指定重量
与一个“不”
使用格式化的dlarray
对象或通过使用“WeightsFormat”
选项。
例子:'WeightsFormat', 'TCU'
数据类型:字符
|字符串
步
—遍历输入数据的步长1.
(默认)|数字标量|数字矢量遍历输入数据的步长,指定为逗号分隔对,由“大步走”
和数字标量或数字向量。如果您指定“大步走”
作为标量,相同的值用于所有空间维度“大步走”
作为相同大小的输入数据的空间的维数的矢量,矢量值被用于对应的空间尺寸。
的默认值“大步走”
是1.
.
例子:“迈步”,3
数据类型:单
|双
|INT8.
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
DilationFactor
—滤波器膨胀因子1.
(默认)|数字标量|数字矢量过滤器扩张因子,指定为逗号分隔的一对组成的“DilationFactor”
和下面的一个。
数值标量-对所有空间维度应用相同的膨胀因子值。
数值向量 - 甲不同膨胀系数值沿着每个空间维度施加。使用大小的矢量D
,在那里D
是输入数据的空间维数。这个我
向量的第Th元素指定应用于的膨胀因子我
空间维度。
使用扩张的因素,增加对输入数据的过滤器(输入的过滤器可以看到的区域)的感受野。使用扩张因子对应于一个有效的过滤器大小filterSize +(filterSize-1)*(dilationFactor-1)
.
例子:“DilationFactor”,2
数据类型:单
|双
|INT8.
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
衬料
—填充的大小0
(默认)|'相同的'
|“因果”
|数字标量|数字矢量|数值矩阵应用于对象的填充大小'S'
和“不”
维数由权重的格式给出,由逗号分隔的指定对组成“填充”
以及下列其中一项:
'相同的'
-应用填充,使输出尺寸大小小区(inputSize /步幅)
,在那里inputSize
是对应的输入尺寸的大小。什么时候步
是1.
时,输出的大小与输入相同。
“因果”
–使用大小合适的左填充(FilterSize - 1)
。*DilationFactor
.此选项仅支持在单个时间或万博1manbetx空间维度上进行卷积。什么时候步
是1.
时,输出的大小与输入相同。
非负整数深圳
-添加大小的填充深圳
到的两端'S'
或者“不”
由重量格式给出的尺寸。
向量的整数深圳
-添加大小的填充SZ(ⅰ)
到的两端我
th'S'
或者“不”
由重量格式给出的尺寸。的元件的数目深圳
必须的数量相匹配'S'
或者“不”
重量的尺寸。
整数矩阵深圳
-添加大小的填充深圳(我)
和深圳(2,我)
至始至终我
th'S'
或者“不”
由重量格式给出的尺寸。例如,对于二维输入,[TL;BR]
应用尺寸填充T
,B
,L
, 和R
到顶部,底部,左侧,和分别向右的输入端。
例子:“填充”,“同”
数据类型:单
|双
|INT8.
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|字符
|字符串
填充值
—填充数据的值“symmetric-include-edge”
|“symmetric-exclude-edge”
|'复制'
值来填充数据,指定为以下其中之一:
填充值 |
描述 | 实例 |
---|---|---|
标量 | 用指定的标量值填充。 |
|
“symmetric-include-edge” |
使用输入的镜像值(包括边值)填充。 |
|
“symmetric-exclude-edge” |
使用镜像输入值(不包括边值)的Pad。 |
|
'复制' |
使用输入的重复边界元素填充 |
|
数据类型:单
|双
|INT8.
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|字符
|字符串
这个dlconv
函数将滑动卷积滤波器应用于输入数据dlconv
函数支持一个、两个万博1manbetx或三个空间维度或一个时间维度的卷积。要了解有关深度学习卷积的更多信息,请参阅的定义卷积层在这一点convolution2dLayer
参考页面。
使用注意事项及限制:
当以下至少一个输入参数为gpuArray
或者dlarray
具有类型的基础数据gpuArray
,此功能在GPU上运行。
dlX
重量
偏见
有关更多信息,请参见在GPU上运行MATLAB函数(并行计算工具箱).
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
您还可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区站点不适合您所在位置的访问。