主要内容

dlconv

深度学习卷积

描述

卷积运算将滑动滤波器应用于输入数据。使用dlconv功能深度学习卷积,分组卷积和通道明智的可分离卷积。

这个dlconv函数应用深度学习卷积运算dlarray数据使用dlarray对象允许您标记维度,从而更容易地处理高维数据。例如,可以使用。标记空间维度、时间维度、通道维度和批处理维度“S”,“T”,“C”, 和“B”标签。对于未指定尺寸和其他尺寸,请使用“U”标签。为了dlarray对象函数在特定维度上操作时,可以通过格式化dlarray对象,或使用数据格式选项。

笔记

要内的应用卷积layerGraph对象或阵列,下面的层中的用途之一:

实例

德利= dlconv (dlX,重量,偏见)将深度学习卷积操作应用于格式化的对象dlarray对象dlX。该函数使用由定义的滑动卷积滤波器重量并加上常数偏见.输出德利是一个格式化的dlarray对象的相同格式dlX

该功能默认情况下,在卷积最多的三个维度dlX标签'S'(空间)。在标注的维度上进行卷积“不”(时间),指定重量与一个“不”使用格式化的dlarray对象或通过使用“WeightsFormat”选项。

对于未格式化的输入数据,请使用“DataFormat”选项。

实例

德利= dlconv (dlX,重量,偏见, 'DATAFORMAT',FMT)将深度学习卷积操作应用于未格式化的对象dlarray对象dlX格式由指定FMT使用任何前面的语法。输出德利是一个未格式化dlarray与所述相同的顺序对象尺寸dlX例如'DATAFORMAT', '固态断路器'指定格式为的二维卷积数据“SSCB”(spatial, spatial, channel, batch)。

实例

德利= dlconv (___,名称、值)使用一种或使用任何先前的语法的多个名称 - 值对的参数指定的选项。例如,'WeightsFormat', 'TCU'指定的权重用于格式1-d卷积“TCU”(时间,信道,未指定)。

例子

全部收缩

创建一个格式化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'

输入参数

全部收缩

输入数据,指定为格式化的dlarray,未格式化dlarray,或数字数组。

如果dlX是一个未格式化dlarray或数字数组,则必须使用“DataFormat”选项。如果dlX是一个数字数组,则重量或者偏见必须是dlarray目的。

该功能默认情况下,在卷积最多的三个维度dlX标签'S'(空间)。在标注的维度上进行卷积“不”(时间),指定重量与一个“不”使用格式化的dlarray对象或通过使用“WeightsFormat”选项。

卷积过滤器,指定为格式化dlarray,未格式化dlarray,或数字数组。

权重的大小和格式取决于任务的类型。如果重量是一个未格式化dlarray或数字数组,则尺寸和形状重量取决于“WeightsFormat”选项。

下表描述的权重来完成各项任务的大小和格式。您可以指定任何顺序维度的数组使用格式化dlarray对象或使用“WeightsFormat”选项。当配重具有与所述相同的标签多个维度(例如,多个维度标记'S'),那么这些尺寸必须在如在该表中描述的排序。

任务 需要的尺寸 大小 实例
砝码 格式
一维卷积 'S'(空间)或“不”(时间) 滤镜尺寸

过滤——- - - - - -numChannels——- - - - - -微粒过滤器数组,过滤是一维滤波器的大小,numChannels是输入数据的通道数,以及微粒过滤器是过滤器的数量。

“并”(空间,通道,未指定)
“C”(通道) 数量的渠道
“你”(未指明) 数量的过滤器
一维分组卷积 'S'(空间)或“不”(时间) 滤镜尺寸

过滤——- - - - - -numChannelsPerGroup——- - - - - -numFiltersPerGroup——- - - - - -numGroups数组,过滤是一维滤波器的大小,numChannelsPerGroup是每组输入数据的通道数,以及numFiltersPerGroup是每个组的筛选器数。

numChannelsPerGroup必须等于输入数据的通道数除以numGroups

“SCUU”(空间、通道、未指定、未指定)
“C”(通道) 每个组的频道数
第一个“你”(未指明) 每组过滤器的数量
第二个“你”(未指明) 组数
二维卷积 第一个'S'(空间) 过滤高度

filterSize(1)——- - - - - -filterSize(2)——- - - - - -numChannels——- - - - - -微粒过滤器数组,filterSize(1)filterSize(2)分别为二维滤波器的高度和宽度,numChannels是输入数据的通道数,以及微粒过滤器是过滤器的数量。

“SSCU”(空间,空间,通道,未指定)
第二个'S'(空间)或“不”(时间) 过滤器宽度
“C”(通道) 数量的渠道
“你”(未指明) 数量的过滤器
二维卷积分组 第一个'S'(空间) 过滤高度

filterSize(1)——- - - - - -filterSize(2)——- - - - - -numChannelsPerGroup——- - - - - -numFiltersPerGroup——- - - - - -numGroups数组,filterSize(1)filterSize(2)分别为二维滤波器的高度和宽度,numChannelsPerGroup是每组输入数据的通道数,以及numFiltersPerGroup是每个组的筛选器数。

numChannelsPerGroup必须等于输入数据的通道数除以numGroups

“SSCUU”(spatial, spatial, channel,未指定,未指定)
第二个'S'(空间)或“不”(时间) 过滤器宽度
“C”(通道) 每个组的频道数
第一个“你”(未指明) 每组过滤器的数量
第二个“你”(未指明) 组数
三维卷积 第一个'S'(空间) 过滤高度

filterSize(1)——- - - - - -filterSize(2)——- - - - - -filterSize(3)——- - - - - -numChannels——- - - - - -微粒过滤器数组,filterSize(1),filterSize(2), 和filterSize(3)分别为3d滤镜的高度、宽度和深度,numChannels是输入数据的通道数,以及微粒过滤器是过滤器的数量。

“SSSCU”(空间、空间、空间、通道,未指定)
第二个'S'(空间) 过滤器宽度
第三'S'(空间)或“不”(时间) 过滤器深度
“C”(通道) 数量的渠道
“你”(未指明) 数量的过滤器

对于信道可分(也称为深度可分)卷积,使用组数等于信道数的分组卷积。

提示

该功能默认情况下,在卷积最多的三个维度dlX标签'S'(空间)。在标注的维度上进行卷积“不”(时间),指定重量与一个“不”使用格式化的dlarray对象或通过使用“WeightsFormat”选项。

偏压恒定,指定为格式化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”取决于任务:

任务 默认
一维卷积 “并”(空间,通道,未指定)
一维分组卷积 “SCUU”(空间、通道、未指定、未指定)
二维卷积 “SSCU”(空间,空间,通道,未指定)
二维卷积分组 “SSCUU”(spatial, spatial, channel,未指定,未指定)
三维卷积 “SSSCU”(空间、空间、空间、通道,未指定)

尺寸标签万博1manbetx的支持的组合取决于卷积的类型,以了解更多信息,请参阅重量论点。

提示

该功能默认情况下,在卷积最多的三个维度dlX标签'S'(空间)。在标注的维度上进行卷积“不”(时间),指定重量与一个“不”使用格式化的dlarray对象或通过使用“WeightsFormat”选项。

例子:'WeightsFormat', 'TCU'

数据类型:字符|字符串

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

的默认值“大步走”1.

例子:“迈步”,3

数据类型:||INT8.|int16|int32|int64|uint8|uint16|uint32|uint64

过滤器扩张因子,指定为逗号分隔的一对组成的“DilationFactor”和下面的一个。

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

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

使用扩张的因素,增加对输入数据的过滤器(输入的过滤器可以看到的区域)的感受野。使用扩张因子对应于一个有效的过滤器大小filterSize +(filterSize-1)*(dilationFactor-1)

例子:“DilationFactor”,2

数据类型:||INT8.|int16|int32|int64|uint8|uint16|uint32|uint64

应用于对象的填充大小'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|字符|字符串

值来填充数据,指定为以下其中之一:

填充值 描述 实例
标量 用指定的标量值填充。

[ 3. 1. 4. 1. 5. 9 2. 6. 5. ] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3. 1. 4. 0 0 0 0 1. 5. 9 0 0 0 0 2. 6. 5. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ]

“symmetric-include-edge” 使用输入的镜像值(包括边值)填充。

[ 3. 1. 4. 1. 5. 9 2. 6. 5. ] [ 5. 1. 1. 5. 9 9 5. 1. 3. 3. 1. 4. 4. 1. 1. 3. 3. 1. 4. 4. 1. 5. 1. 1. 5. 9 9 5. 6. 2. 2. 6. 5. 5. 6. 6. 2. 2. 6. 5. 5. 6. 5. 1. 1. 5. 9 9 5. ]

“symmetric-exclude-edge” 使用镜像输入值(不包括边值)的Pad。

[ 3. 1. 4. 1. 5. 9 2. 6. 5. ] [ 5. 6. 2. 6. 5. 6. 2. 9 5. 1. 5. 9 5. 1. 4. 1. 3. 1. 4. 1. 3. 9 5. 1. 5. 9 5. 1. 5. 6. 2. 6. 5. 6. 2. 9 5. 1. 5. 9 5. 1. 4. 1. 3. 1. 4. 1. 3. ]

'复制' 使用输入的重复边界元素填充

[ 3. 1. 4. 1. 5. 9 2. 6. 5. ] [ 3. 3. 3. 1. 4. 4. 4. 3. 3. 3. 1. 4. 4. 4. 3. 3. 3. 1. 4. 4. 4. 1. 1. 1. 5. 9 9 9 2. 2. 2. 6. 5. 5. 5. 2. 2. 2. 6. 5. 5. 5. 2. 2. 2. 6. 5. 5. 5. ]

数据类型:||INT8.|int16|int32|int64|uint8|uint16|uint32|uint64|字符|字符串

输出参数

全部收缩

卷积特征映射,作为dlarray用相同的基础数据类型如dlX

如果输入数据dlX是一个格式化的dlarray然后德利格式与dlX.如果输入数据没有格式化dlarray然后德利是一个未格式化dlarray使用与输入数据相同的维度顺序。

的大小“C”(信道)的尺寸德利这取决于任务。

任务 的大小“C”
卷积 数量的过滤器
分组卷积 每个组的过滤器数量乘以组的数量

更多关于

全部收缩

深度学习卷积

这个dlconv函数将滑动卷积滤波器应用于输入数据dlconv函数支持一个、两个万博1manbetx或三个空间维度或一个时间维度的卷积。要了解有关深度学习卷积的更多信息,请参阅的定义卷积层在这一点convolution2dLayer参考页面。

扩展功能

在R2019b中引入