主要内容

dlconv

深度学习卷积

自从R2019b

描述

卷积操作滑动过滤器适用于输入数据。使用dlconv函数卷积深度学习、分组卷积和channel-wise分离卷积。

dlconv深度学习卷积操作适用于函数dlarray数据。使用dlarray更易于处理高维数据的对象允许您标签的尺寸。例如,您可以标签尺寸对应于空间,时间,频道,使用批处理维度“S”,“T”,“C”,“B”标签,分别。未指明的和其他维度,使用“U”标签。为dlarray对象的函数操作特定的尺寸,你可以指定尺寸标签的格式dlarray直接对象,或通过使用DataFormat选择。

请注意

应用卷积内layerGraph对象或数组,使用下面一层:

例子

Y= dlconv (X,权重,偏见)深度学习卷积操作适用于格式化的dlarray对象X。定义的函数使用滑动卷积过滤器权重并添加常数偏见。输出Y是一个格式化的dlarray对象与相同的格式X

这个函数,默认情况下,在三维空间的可变X标签“S”(空间)。在尺寸标注进行卷积“T”(时间),指定权重与一个“T”使用格式化的维度dlarray对象或使用WeightsFormat选择。

无格式的输入数据,使用DataFormat选择。

例子

Y= dlconv (X,权重,偏见,DataFormat = FMT)深度学习卷积操作适用于非格式化dlarray对象X带格式的规定FMT。输出Y是一个非格式化dlarray对象维度的顺序一样X。例如,DataFormat = " SSCB "指定数据的二维卷积格式“SSCB”(空间、空间、通道、批)。

例子

Y= dlconv (___,名称=值)指定选项使用一个或多个名称-值对参数使用任何以前的语法。例如,WeightsFormat = " TCU "指定权重为一维卷积格式“TCU”(时间、渠道不明)。

例子

全部折叠

创建一个格式化的dlarray对象包含了一批128 28-by-28图像3通道。指定的格式“SSCB”(空间、空间、通道、批)。

miniBatchSize = 128;inputSize = 28 [28];numChannels = 3;X =兰特(inputSize (1) inputSize (2), numChannels, miniBatchSize);X = dlarray (X,“SSCB”);

视图的大小和格式输入数据。

大小(X)
ans =1×4128年28日28日3
dim (X)
ans = ' SSCB '

初始化二维卷积的重量和偏见。对于权重,指定64 3 x3的过滤器。的偏见,指定一个零的向量。

filterSize = 3 [3];numFilters = 64;重量=兰德(filterSize (1) filterSize (2), numChannels, numFilters);偏见= 0 (1、numFilters);

应用二维卷积使用dlconv函数。

Y = dlconv (X,重量偏差);

视图的大小和格式输出。

大小(Y)
ans =1×426日26日64 128
退去(Y)
ans = ' SSCB '

卷积输入数据在三组,每组两个渠道。应用四个过滤器每组。

创建输入数据的大小100 - 10观测- 100有六个频道。

身高= 100;宽度= 100;渠道= 6;numObservations = 10;X =兰德(高度、宽度、通道numObservations);X = dlarray (X,“SSCB”);

初始化卷积过滤器。指定三组曲线玲珑,每四个卷积过滤器适用于输入数据的两个渠道。

filterHeight = 8;filterWidth = 8;numChannelsPerGroup = 2;numFiltersPerGroup = 4;numGroups = 3;重量=兰德(filterHeight filterWidth、numChannelsPerGroup numFiltersPerGroup, numGroups);

初始化倾向。

偏见=兰德(numFiltersPerGroup * numGroups, 1);

执行卷积。

Y = dlconv (X,重量偏差);大小(Y)
ans =1×493 93年12
退去(Y)
ans = ' SSCB '

卷积的12通道输出代表旋转的三组每组有四个过滤器。

单独的数据输入到渠道和对每个通道分别进行卷积。

创建输入数据作为一个观察的大小由- 64和64 - 10频道。创建数据作为非格式化dlarray

身高= 64;宽度= 64;numChannels = 10;X =兰德(高度、宽度、numChannels);X = dlarray (X);

初始化卷积过滤器。指定一个未分组的卷积,卷积一个适用于所有三个通道的输入数据。

filterHeight = 8;filterWidth = 8;numChannelsPerGroup = 1;numFiltersPerGroup = 1;numGroups = numChannels;重量=兰德(filterHeight filterWidth、numChannelsPerGroup numFiltersPerGroup, numGroups);

初始化倾向。

偏见=兰德(numFiltersPerGroup * numGroups, 1);

执行卷积。指定输入数据的维度标签使用DataFormat选择。

Y = dlconv (X,重量、偏见、DataFormat =“SSC”);大小(Y)
ans =1×357 57 10

每个通道单独卷积,所以有10个通道输出。

创建一个格式化的dlarray对象包含5特性包含128序列长度为512。指定的格式“认知行为治疗”(通道、批量、时间)。

numChannels = 5;miniBatchSize = 128;sequenceLength = 512;X =兰德(numChannels miniBatchSize sequenceLength);X = dlarray (X,“认知行为治疗”);

初始化权重为一维卷积和偏见。对于权重,指定64过滤器,过滤器的大小3。的偏见,指定一个零的向量。

filterSize = 3;numFilters = 64;重量=兰德(filterSize numChannels numFilters);偏见= 0 (1、numFilters);

应用一维卷积使用dlconv函数。缠绕在“T”(时间)输入数据的维度,指定权重格式“TCU”(时间、渠道不明)使用WeightsFormat选择。

Y = dlconv (X,重量、偏见、WeightsFormat =“TCU”);

视图的大小和格式输出。

大小(Y)
ans =1×364 128 510
退去(Y)
ans =“认知行为治疗”

输入参数

全部折叠

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

如果X是一个非格式化dlarray或数值数组,那么您必须指定使用的格式DataFormat选择。如果X是一个数值数组,然后要么权重偏见必须是一个dlarray对象。

这个函数,默认情况下,在三维空间的可变X标签“S”(空间)。在尺寸标注进行卷积“T”(时间),指定权重与一个“T”使用格式化的维度dlarray对象或使用WeightsFormat选择。

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

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

下表描述了各种任务权重的大小和格式。您可以指定数组的维度使用格式化的任何顺序dlarray对象或使用WeightsFormat选择。当权重有多个具有相同标签的尺寸标记(例如,多个维度“S”),那么这些维度必须在命令中描述这张桌子。

任务 所需的尺寸 大小 例子
权重 格式
一维卷积 “S”(空间)或“T”(时间) 过滤器的大小

filterSize——- - - - - -numChannels——- - - - - -numFilters数组,filterSize一维过滤器的大小,numChannels是渠道的数量的输入数据,然后呢numFilters过滤器的数量。

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

filterSize——- - - - - -numChannelsPerGroup——- - - - - -numFiltersPerGroup——- - - - - -numGroups数组,filterSize一维过滤器的大小,numChannelsPerGroup是渠道的数量每组输入数据,numFiltersPerGroup每组是过滤器的数量,numGroups是团体的数量。

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

“SCUU”(未指明的空间通道,不明)
“C”(通道) 每个组的通道数
第一个“U”(不明) 每组数量的过滤器
第二个“U”(不明) 数量的组
二维卷积 第一个“S”(空间) 过滤器的高度

filterSize (1)——- - - - - -filterSize (2)——- - - - - -numChannels——- - - - - -numFilters数组,filterSize (1)filterSize (2)高度和宽度的二维滤波器,分别numChannels是渠道的数量的输入数据,然后呢numFilters过滤器的数量。

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

filterSize (1)——- - - - - -filterSize (2)——- - - - - -numChannelsPerGroup——- - - - - -numFiltersPerGroup——- - - - - -numGroups数组,filterSize (1)filterSize (2)高度和宽度的二维滤波器,分别numChannelsPerGroup是渠道的数量每组输入数据,numFiltersPerGroup每组是过滤器的数量,numGroups是团体的数量。

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

“SSCUU”(空间、空间、通道、未指明的不明)
第二个“S”(空间)或“T”(时间) 滤波器的宽度
“C”(通道) 每个组的通道数
第一个“U”(不明) 每组数量的过滤器
第二个“U”(不明) 数量的组
三维卷积 第一个“S”(空间) 过滤器的高度

filterSize (1)——- - - - - -filterSize (2)——- - - - - -filterSize (3)——- - - - - -numChannels——- - - - - -numFilters数组,filterSize (1),filterSize (2),filterSize (3)高度,宽度和深度的三维过滤器,分别numChannels是渠道的数量的输入数据,然后呢numFilters过滤器的数量。

“SSSCU”(空间、空间、空间、通道、不明)
第二个“S”(空间) 滤波器的宽度
第三“S”(空间)或“T”(时间) 过滤器深度
“C”(通道) 数量的渠道
“U”(不明) 数量的过滤器

channel-wise分离(也称为深度方面可分)卷积,使用分组卷积组数等于通道的数量。

提示

这个函数,默认情况下,在三维空间的可变X标签“S”(空间)。在尺寸标注进行卷积“T”(时间),指定权重与一个“T”使用格式化的维度dlarray对象或使用WeightsFormat选择。

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

  • 如果偏见是一个标量,然后应用于每个输出相同的偏见。

  • 如果偏见nonsingleton维度,然后每个元素的偏见偏差适用于指定的相应的卷积过滤器吗权重。元素的数量偏见规定必须匹配过滤器的数量吗权重

  • 如果偏见0禁用,然后偏差项添加卷积操作期间,没有偏见。

如果偏见是一个格式化的dlarray,然后nonsingleton维度必须通道尺寸标签“C”(通道)。

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:DilationFactor = 2为每一个卷积过滤器设置膨胀系数2

维度的非格式化输入数据,指定为一个特征向量或字符串标量FMT为每个维度的数据提供一个标签。

当你指定的格式dlarray对象,每个字符为每个维度的数据提供了一个标签,必须这些选项之一:

  • “S”——空间

  • “C”——频道

  • “B”批处理(例如,样品和观察)

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

  • “U”——未指明的

您可以指定多个维度标签“S”“U”。您可以使用标签“C”,“B”,“T”最多一次。

您必须指定DataFormat当输入数据不是一个格式化的dlarray

数据类型:字符|字符串

维度的权重,指定为一个特征向量或字符串标量,它提供了一个标签为每个维度的权重。

的默认值WeightsFormat取决于任务:

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

支持的维万博1manbetx度标签组合取决于类型的卷积,有关更多信息,请参见权重论点。

提示

这个函数,默认情况下,在三维空间的可变X标签“S”(空间)。在尺寸标注进行卷积“T”(时间),指定权重与一个“T”使用格式化的维度dlarray对象或使用WeightsFormat选择。

数据类型:字符|字符串

步长为遍历输入数据,指定为一个数值标量或数值向量。

使用相同的步长为所有卷积维度,将步指定为一个标量。为每个卷积维度来指定一个不同的值,指定的路径作为一个向量元素要求相应的标签尺寸数据格式。

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

过滤器膨胀因素,指定为指定为一个数值标量或数值向量。

使用卷积)的扩张因素维度,扩张因素指定为一个标量。卷积来指定一个不同的值为每个维度,扩张因素指定为一个向量元素命令对应尺寸标签的数据格式。

使用膨胀因素增加过滤器的接受域的面积(输入过滤器可以看到)的输入数据。使用膨胀系数对应于一个有效的过滤器的大小filterSize + (filterSize-1) * (dilationFactor-1)

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

填充应用到的大小“S”“T”的格式给出的尺寸重量、指定为以下之一:

  • “相同”——应用填充,这样输出尺寸大小装天花板(inputSize /步),在那里inputSize的大小相应的输入维数。当1,输出是相同的大小作为输入。

  • “因果”——应用左填充大小(FilterSize - 1)。*DilationFactor。该选项支持卷积只在一个时万博1manbetx间和空间维度。当1,输出是相同的大小作为输入。

  • 非负整数深圳——添加填充的大小深圳的两端“S”“T”维度的格式给出的权重。

  • 向量的整数深圳——添加填充的大小深圳(我)的两端th“S”“T”维度的格式给出的权重。元素的数量深圳必须匹配的数量吗“S”“T”维度的权重。

  • 矩阵的整数深圳——添加填充的大小深圳(我)深圳(2,我)的开始和结束th“S”“T”维度的格式给出的权重。例如,对于二维输入,[t l;b r)适用于填充的大小t,b,l,r顶部,底部,左,和正确的输入,分别。

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

板数据值,指定为以下之一:

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 ]

“symmetric-exclude-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 ]

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

输出参数

全部折叠

卷积功能地图,作为一个返回dlarray基础数据类型一样X

如果输入数据X是一个格式化的dlarray,然后Y有相同的格式吗X。如果没有一个格式化的输入数据dlarray,然后Y是一个非格式化dlarray相同的尺寸订单作为输入数据。

的大小“C”(频道)的维度Y取决于任务。

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

更多关于

全部折叠

深度学习卷积

dlconv滑动卷积过滤器适用于输入数据的函数。的dlconv支持函数卷积的一、万博1manbetx二、三维空间或一个时间维度。了解更多关于深学习卷积,看到的定义卷积的层convolution2dLayer参考页面。

扩展功能

版本历史

介绍了R2019b