主要内容

DLCONV.

深度学习卷积

描述

卷积运算将滑动滤波器应用于输入数据。使用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'选择。

例子

海底= DLCONV(dlX权重偏见、“DataFormat”FMT)将深度学习卷积操作应用于未格式化的操作dlarray对象dlX格式由FMT使用任何前面的语法。输出海底是一个非格式化dlarray尺寸顺序相同的对象dlX.例如,“DataFormat”、“SSCB”用格式指定2-D卷积的数据'SSCB'(空间,空间,频道,批量)。

例子

海底= DLCONV(___名称,值使用一个或多个名称-值对参数(使用前面的任何语法)指定选项。例如,“WeightsFormat”、“TCU的指定带有格式的一维卷积的权重'tcu'(时间、渠道不明)。

例子

全部折叠

创建一个格式化的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 =“认知行为治疗”

输入参数

全部折叠

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

如果dlX是一个非格式化dlarray或数字数组,则必须使用'datomformat'选择。如果dlX是数字数组吗权重偏见必须是一个dlarray对象。

默认情况下,该函数最多可以进行三个维度的卷积dlX标记为“年代”(空间)。在标记的尺寸上旋转“T”(时间),指定权重与A.“T”使用格式化的dlarray对象或使用“WeightsFormat”选择。

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

权重的大小和格式取决于任务的类型。如果权重是一个非格式化dlarray或者一个数字数组,然后是大小和形状权重取决于“WeightsFormat”选择。

下表描述了各种任务的权重的大小和格式。您可以使用格式化来指定具有任何顺序的维数数组dlarray对象或使用“WeightsFormat”选择。当权重具有具有相同标签的多个维度时(例如,多个标注的维度“年代”),则这些尺寸必须按照表中描述的顺序排列。

任务 所需的尺寸 大小 例子
权重 格式
1-D卷积 “年代”(空间)或“T”(时间) 过滤器的大小

filterSize-经过-NumChannels.-经过-numFilters阵列,其中filterSize是1-D滤波器的大小,NumChannels.是输入数据的通道数,和numFilters是过滤器的数量。

'scu'(未指明的空间、通道)
'C'(通道) 渠道数量
“U”(不明) 数量的过滤器
一维分组卷积 “年代”(空间)或“T”(时间) 过滤器的大小

filterSize-经过-numChannelsPerGroup-经过-numfiltersperroup.-经过-numGroups阵列,其中filterSize是1-D滤波器的大小,numChannelsPerGroup每组输入数据的通道数,和numfiltersperroup.为每组的过滤器数量。

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

'苏u'(空间,渠道,未指定,未指定)
'C'(通道) 每组渠道数量
第一的“U”(不明) 每组过滤器数量
第二个“U”(不明) 数量的组
2-D卷积 第一的“年代”(空间) 过滤器的高度

filterSize (1)-经过-filterSize (2)-经过-NumChannels.-经过-numFilters阵列,其中filterSize (1)filterSize (2)是2-D滤波器的高度和宽度,NumChannels.是输入数据的通道数,和numFilters是过滤器的数量。

“SSCU”(空间,空间,频道,未指定)
第二个“年代”(空间)或“T”(时间) 滤波器的宽度
'C'(通道) 渠道数量
“U”(不明) 数量的过滤器
2-D分组卷积 第一的“年代”(空间) 过滤器的高度

filterSize (1)-经过-filterSize (2)-经过-numChannelsPerGroup-经过-numfiltersperroup.-经过-numGroups阵列,其中filterSize (1)filterSize (2)是2-D滤波器的高度和宽度,numChannelsPerGroup每组输入数据的通道数,和numfiltersperroup.为每组的过滤器数量。

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

'sscuu'(spatial, spatial, channel,未指定,未指定)
第二个“年代”(空间)或“T”(时间) 滤波器的宽度
'C'(通道) 每组渠道数量
第一的“U”(不明) 每组过滤器数量
第二个“U”(不明) 数量的组
三维卷积 第一的“年代”(空间) 过滤器的高度

filterSize (1)-经过-filterSize (2)-经过-filterSize (3)-经过-NumChannels.-经过-numFilters阵列,其中filterSize (1)filterSize (2),filterSize (3)分别为3d滤镜的高度、宽度和深度,NumChannels.是输入数据的通道数,和numFilters是过滤器的数量。

'ssscu'(spatial, spatial, spatial, channel,未指定)
第二个“年代”(空间) 滤波器的宽度
第三“年代”(空间)或“T”(时间) 过滤器深度
'C'(通道) 渠道数量
“U”(不明) 数量的过滤器

对于通道 - 明智的可分离(也称为深度明智的可分离)卷积,使用具有等于通道数量的组数的分组卷积。

提示

默认情况下,该函数最多可以进行三个维度的卷积dlX标记为“年代”(空间)。在标记的尺寸上旋转“T”(时间),指定权重与A.“T”使用格式化的dlarray对象或使用“WeightsFormat”选择。

指定为格式化的偏置常数dlarray,一个非格式化dlarray、数字向量或数字标量。

  • 如果偏见为标量,则对每个输出应用相同的偏差。

  • 如果偏见有一个不明的项目尺寸,然后是每个元素偏见是否将偏差应用到指定的卷积滤波器上权重.元素的数量偏见必须匹配指定的过滤器数量权重

  • 如果偏见0,则偏置项被禁用,在卷积运算过程中不添加偏置项。

如果偏见是一个格式化的dlarray,则非单例维度必须是带标签的通道维度'C'(通道)。

名称-值对的观点

指定可选的逗号分隔的对名称,值论点。名称参数名和价值为对应值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“DilationFactor”,2设置每个卷积滤波器的膨胀因子为2

未格式化输入数据的维度顺序,指定为逗号分隔对,由'datomformat'和一个字符矢量或标量FMT为数据的每个维度提供一个标签。

当指定的格式dlarray对象中,每个字符为数据的每个维度提供一个标签,并且必须是以下内容之一:

  • “年代”- 空间

  • 'C'- 渠道

  • 'B'-批次(例如,样品和观察)

  • “T”-时间(例如,序列的时间步长)

  • “U”- 未指定

您可以指定多个标注的维度“年代”“U”.你可以使用标签'C''B',“T”最多一次。

您必须指定'datomformat'当输入数据未格式化时dlarray

例子:“DataFormat”、“SSCB”

数据类型:char|细绳

权重的维度顺序,指定为逗号分隔对组成“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

例子:“步”,3

数据类型:单身的|双倍的

过滤器膨胀系数,指定为逗号分隔对,由'膨胀因子'下面是其中之一。

  • 数值标量 - 施加相同的扩张因子值,适用于所有空间尺寸。

  • 数值向量-在每个空间维度上应用不同的膨胀因子值。使用大小向量d, 在哪里d是输入数据的空间维数。的向量的第Th元素指定应用于的膨胀因子空间维度。

使用膨胀因子来增加过滤器的接受域(过滤器可以看到的输入区域)对输入数据。使用膨胀系数对应的有效过滤器尺寸为filterSize + (filterSize-1) * (dilationFactor-1)

例子:“DilationFactor”,2

数据类型:单身的|双倍的

应用于数据边缘的填充大小,指定为逗号分隔对,由'填充'以及以下其中之一:

  • “相同”- 设置填充尺寸,使得输出大小与进度时的输入大小相同1.更一般地说,每个空间维度的输出大小为装天花板(inputSize /步), 在哪里输入是沿空间维度输入的大小。

  • 数字标量-在所有空间维度的两端应用相同数量的填充。

  • 数字向量——沿着每个空间维度应用不同数量的填充。使用大小向量d, 在哪里d是输入数据的空间维数。的向量的第Th元素指定沿空间维度。

  • 数字矩阵 - 将不同量的填充应用于每个空间尺寸的开始和结束。使用大小矩阵2-by-d, 在哪里d是输入数据的空间维数。的元素(d)指定应用于空间维度开始的填充的大小d.的元素(2,D)指定应用于空间维度末端的填充的大小d.例如,在2-D中,格式是(前、左;下,右)

例子:“填充”,“相同”

数据类型:单身的|双倍的

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

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

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

'对称排除-Edge' 使用输入的镜像值,不包括边沿值。

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

输出参数

全部折叠

卷积特征图,返回为dlarray具有相同的基础数据类型dlX

如果输入数据dlX是一个格式化的dlarray,然后海底有相同的格式dlX.如果输入数据不是格式化的dlarray,然后海底是一个非格式化dlarray与输入数据的维度顺序相同。

尺寸'C'(频道)的维度海底取决于任务。

任务 size'C'尺寸
卷积 数量的过滤器
分组卷积 每个组的过滤器数量乘以组的数量

更多关于

全部折叠

深入学习卷积

DLCONV.函数对输入数据应用滑动卷积滤波器。的DLCONV.函数支持一维、二维金宝app或三维空间或一维时间的卷积。要了解更多关于深度学习卷积的知识,请参见定义卷积的层convolution2dLayer参考页面。

扩展能力

介绍了R2019b