主要内容

Convolution3dlayer.

3-D卷积层

描述

3-D卷积层将滑动立方体卷积滤波器应用于三维输入。该层通过沿垂直,水平,沿着深度移动滤波器来使滤波器沿滤波器移动,计算权重和输入的点乘积,然后添加偏置术语来颠覆输入。

创建

描述

= Convolution3dlayer(filterSizenumFilters创建一个3-D卷积层并设置过滤numfilters.特性。

例子

= Convolution3dlayer(filterSizenumFilters名称,值设置可选步行稀释物料NumChannels参数和初始化学习速率和正规化, 和名称属性使用名称值对。要指定输入填充,请使用'填充'名称值对参数。例如,卷积3dlayer(11,96,'stride',4,'填充',1)创建一个3-D卷积层,尺寸为96个过滤器(11 11 11),一步[4 4 4],以及沿图层输入的所有边缘大小为1的填充。可以指定多个名称-值对。将每个属性名用单引号括起来。

输入参数

展开全部

名称值对参数

使用逗号分隔的名称 - 值对参数指定填充的大小以沿着图层的边缘添加或设置步行稀释物料NumChannels参数和初始化学习速率和正规化, 和名称特性。用单引号附上名称。

例子:convolution3dLayer(16日“填充”,“相同”)创建一个3-D卷积层,尺寸为16个过滤器(3 3 3)'相同的'填充。在训练时间时,软件计算并设置填充的大小,使得图层输出具有与输入相同的大小。

输入边缘填充,指定为逗号分隔对'填充'其中一个价值观是:

  • '相同的'- 在训练或预测时添加软件计算的大小的填充,使得输出在步幅等于1时具有与输入相同的尺寸。如果步幅大于1,则输出大小为CEIL(投入/迈出), 在哪里输入输入和的高度、宽度或深度是多少是相应维度的步幅。如果可能的话,该软件将与顶部和右侧的顶部和底部相同的填充物相同的填充物。如果给定维度中的填充具有奇数值,则软件将额外的填充添加到输入中作为后部支付。换句话说,该软件将额外的垂直填充添加到底部,向右额外的水平填充,并向输入背面额外的深度填充。

  • 非负整数p-添加大小填充p到输入的所有边缘。

  • 三元素矢量(a b c)非负整数-添加大小填充一个到顶部和底部,填充尺寸b到左右,填充尺寸c到输入的前后。

  • 2×3矩阵[t l f; b r k]非负整数-添加大小填充t到顶部,b至底部,l到左边,r向右,f到前面,k到输入的后面。换句话说,第一行指定了预添加,第二行定义了三个维度中的延迟添加。

例子:'填充',1将一排填充到顶部和底部,一列填充到左右,并向输入的前后填充平面。

例子:'填充','同样'添加填充,使得输出具有与输入相同的大小(如果步幅等于1)。

特性

展开全部

卷积

滤波器的高度,宽度和深度,指定为向量[w h d]三个正整数,在哪里h是高度,w宽度,和d是深度。过滤定义神经元在输入中连接的本地区域的大小。

在创建图层时,可以指定过滤作为标量,对高度、宽度和深度使用相同的值。

例子:[5 5 5]使用高度,宽度和深度为5的过滤器。

筛选器数量,指定为正整数。该数字对应于连接到输入中的相同区域的卷积层中的神经元数。此参数确定卷积层输出中的通道(特征映射)的数量。

例子:96.

遍历三维输入的步长,指定为向量(a b c)三个正整数,在哪里一个为垂直步长,b是水平步长,和c是沿着深度的阶梯大小。在创建图层时,可以指定步行作为标量在三个方向上使用相同的步骤尺寸的值。

例子:[2 3 1]指定垂直台尺寸为2,水平台尺寸为3,沿着深度为1的步长。

指定为载体的扩张卷积的因素(也称为不足卷积)[w h d]三个正整数,在哪里h为垂直膨胀,w是水平扩张,和d是沿深度的膨胀。在创建图层时,可以指定稀释物料作为标量,在所有三个方向上使用相同的膨胀值。

使用扩张的卷积来增加层的接收场(图层可以看到的输入区域)而不增加参数或计算的数量。

通过在每个滤波器元件之间插入零来扩展滤波器。扩张因子确定用于采样输入的步骤或等效地对滤波器的上采样因子进行采样。它对应于有效的滤波器大小(过滤尺寸- 1) *扩张因子+ 1。例如,一个带有膨胀系数的3 × 3 × 3滤波器[2 2 2]相当于一个元素之间为零的5 × 5 × 5滤波器。

例子:[2 3 1]将过滤器垂直分倍率2,水平为3倍,沿着深度倍率为1。

填充的大小适用于输入边框,指定为2×3矩阵[t l f; b r k]对于非负整数,其中tb衬垫是否沿垂直方向施加到顶部和底部,lr在水平方向上,填充是否应用于左边和右边fk是否沿深度将填充物应用到前面和后面。换句话说,第一行指定了预添加,第二行定义了三个维度中的延迟添加。

当你创建一个图层时,使用'填充'名称值对参数指定填充大小。

例子:[1 2 4; 1 2 4]在输入的顶部和底部添加一行填充,在左边和右边添加两列填充,在输入的前面和后面添加四个填充平面。

确定填充大小的方法,指定为'手动的'要么'相同的'

该软件自动设置值PaddingMode基于你在创建图层时指定的“填充”值。

  • 如果你设置了'填充'选项为标量或非负整数向量,则软件自动设置PaddingMode'手动的'

  • 如果你设置了'填充'选项'相同的',则软件自动设定PaddingMode'相同的'并计算训练时填充的大小,使stride等于1时输出的大小与输入的大小相同。如果步幅大于1,则输出大小为CEIL(投入/迈出), 在哪里输入输入和的高度、宽度或深度是多少是相应维度的步幅。如果可能的话,该软件将与顶部和右侧的顶部和底部相同的填充物相同的填充物。如果给定维度中的填充具有奇数值,则软件将额外的填充添加到输入中作为后部支付。换句话说,该软件将额外的垂直填充添加到底部,向右额外的水平填充,并向输入背面额外的深度填充。

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

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

每个过滤器的通道数,指定为“汽车”或正整数。

此参数始终等于输入到卷积层的输入的通道数。例如,如果输入是彩色图像,则输入的通道数为3.如果在电流层之前的卷积层的滤波器的数量为16,则当前层的通道数为16.

如果NumChannels“汽车”,然后软件确定培训时间的通道数。

例子:256.

参数和初始化

初始化权重的功能,指定为以下内容之一:

  • “glorot”-使用gloria初始化器初始化权重[1](也称为Xavier初始化器)。格洛特初始化器从均值和方差均为零的均匀分布中独立抽样2 / (numIn + numOut), 在哪里numin = filtersize(1)* filtersize(2)*过滤(3)* numchannelsnumout = filtersize(1)* filtersize(2)*过滤(3)* numfilters

  • '他'-使用He初始化器初始化权值[2].他初始化来自正常分布的样本,零均值和方差2 / numIn, 在哪里numin = filtersize(1)* filtersize(2)*过滤(3)* numchannels

  • '窄正常'-从均值为零、标准差为0.01的正态分布中独立抽样来初始化权重。

  • “零”- 用零初始化权重。

  • “的”—使用“1”初始化权重。

  • 功能句柄 - 使用自定义功能初始化权重。如果指定函数句柄,则函数必须是表单重量= func(深圳), 在哪里SZ.是重量的大小。例如,看到指定自定义权重初始化功能

该图层仅初始化权重权重属性是空的。

数据类型:char|细绳|function_handle

函数初始化偏差,指定为以下任意一个:

  • “零”- 用零初始化偏差。

  • “的”- 初始化偏差。

  • '窄正常'- 通过从正常分布的自主分布采样,零平均值和标准偏差0.01,初始化偏差。

  • 功能句柄 - 使用自定义功能初始化偏差。如果指定函数句柄,则函数必须是表单BIAS = FUNC(SZ), 在哪里SZ.是偏见的大小。

该图层仅初始化偏差时偏见属性是空的。

数据类型:char|细绳|function_handle

卷积层的层权重指定为数字数组。

层权重是可学习参数。您可以直接指定权重的初始值权重层的财产。培训网络时,如果权重那个层的财产是非空的,然后trainNetwork用来权重属性作为初始值。如果权重属性为空trainNetwork使用指定的初始化程序WeightsInitializer层的财产。

在培训时,权重是A.过滤(1)-经过-过滤(2)-经过-过滤(3)-经过-NumChannels-经过-numfilters.数组中。

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

卷积层的层偏置,指定为数字数组。

层偏差是可学习的参数。当训练一个网络时,如果偏见是不是空的,然后trainNetwork用来偏见属性作为初始值。如果偏见是空的,然后trainNetwork使用指定的初始化程序偏见初始化器

在培训时,偏见是一个1-by-1-by-numfilters.数组中。

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

学习速率和正规化

学习权重的因素,指定为非负标量。

该软件通过全局学习速率乘以此因素来确定该层中权重的学习率。例如,如果举重是2,那么该层中权重的学习率是当前全球学习率的两倍。该软件根据指定的设置确定全局学习速率培训选项函数。

例子:2

偏差的学习率因子,指定为非负标量。

该软件通过全局学习率乘以此因素来确定该层中偏差的学习率。例如,如果BiasLearnRateFactor是2,那么层中偏差的学习率是当前全球学习率的两倍。该软件根据指定的设置确定全局学习速率培训选项函数。

例子:2

L2权重的正则化因子,指定为非负标量。

该软件将这个因子乘以全局L2正则化因子,以确定该层权重的L2正则化。例如,如果掌权2factor.是2,那么该层中重量的L2正则化是全局L2正则化因子的两倍。的方法可以指定全局L2正则化因子培训选项函数。

例子:2

L2偏差的正则化因子,指定为非负标量。

该软件将该因子乘以L2的全局正则化因子,以确定该层偏差的L2正则化。例如,如果BiasL2Factor为2,则该层偏差的L2正则化是全局L2正则化因子的两倍。的方法可以指定全局L2正则化因子培训选项函数。

例子:2

图层名称,指定为字符向量或字符串标量。要在图层图中包含一个图层,必须指定非空,唯一的图层名称。如果您使用该图层培训系列网络名称被设置为'',然后软件会自动为培训时间分配给图层的名称。

数据类型:char|细绳

层的输入数。此图层仅接受单个输入。

数据类型:双倍的

图层的输入名称。此图层仅接受单个输入。

数据类型:细胞

图层的输出数。此图层仅具有单个输出。

数据类型:双倍的

图层的输出名称。此图层仅具有单个输出。

数据类型:细胞

例子

全部收缩

创建一个带16个过滤器的3-D卷积层,每个滤波器,宽度和深度为5.在所有三个方向上使用4的步幅(步长)。

第=卷积3dlayer(5,16,“步”4)
Tillay = Convolution3Dlayer具有属性:'''Quand参数过滤:[5 5 5] NumChannels:'Auto'NumFilters:16步:[4 4] DilationFactor:[1 1] PaddingMode:'手动'拼接:[2x3双] PaddingValue:0可学习参数权重:[]偏置:[]显示所有属性

包括一个三维卷积层数组中。

层= [......image3dinputlayer([28 28 28 3])卷积3dlayer(5,16,“步”4) reluLayer maxPooling3dLayer (2“步”,4)全连接层(10)SoftMaxLayer分类层]
Layer = 7x1 Layer array with layers: 1 " 3-D Image Input 28x28x28x3 images with 'zerocenter' normalization 2 " Convolution 16 5x5x5卷积与stride[4 4 4]和填充[0 0 0;0 0 0] 3“ReLU ReLU 4”3- d Max Pooling 2x2x2 Max Pooling with stride [4 4 4] and padding [0 0 0;0 0 0] 5”全连接10完全连接层6”Softmax Softmax 7”分类输出交叉

要指定权重和偏置初始化器功能,请使用WeightsInitializer偏见初始化器属性分别。要直接指定权重和偏差,请使用权重偏见属性分别。

指定初始化功能

使用32个过滤器创建一个三维卷积层,每个过滤器具有高度,宽度和深度为5.指定重量初始化程序是他初始化程序。

filtersize = 5;numfilters = 32;tillay =卷积3dlayer(过滤,numfilters,......'掌控itializer''他'
layer = Convolution3DLayer with properties: Name: " Hyperparameters FilterSize: [5 5 5] NumChannels: 'auto' NumFilters: 32 Stride: [1 1 1] DilationFactor: [1 1 1] PaddingMode: 'manual' PaddingSize: [2x3 double] PaddingValue: 0 Learnable Parameters Weights: [] Bias:[]显示所有属性

请注意,权重偏见属性是空的。在训练时,软件使用指定的初始化函数初始化这些属性。

指定自定义初始化函数

要为权重和偏置指定自己的初始化功能,请设置WeightsInitializer偏见初始化器函数句柄的属性。对于这些属性,请指定将权重和偏置大小的函数处理作为输入和输出初始化值。

使用32个过滤器创建卷积层,每个滤波器具有高度,宽度和深度为5.指定使用标准偏差为0.0001的高斯分布来对权重和偏置进行样本的初始化器。

filtersize = 5;numfilters = 32;tillay =卷积3dlayer(过滤,numfilters,......'掌控itializer', @(sz) rand(sz) * 0.0001,......'偏见的人', @(sz) rand(sz) * 0.0001)
layer = Convolution3DLayer with properties: Name: " Hyperparameters FilterSize: [5 5 5] NumChannels: 'auto' NumFilters: 32 Stride: [1 1 1] DilationFactor: [1 1 1] PaddingMode: 'manual' PaddingSize: [2x3 double] PaddingValue: 0 Learnable Parameters Weights: [] Bias:[]显示所有属性

再一次,权重偏见属性是空的。在训练时,软件使用指定的初始化函数初始化这些属性。

直接指定权重和偏差

创建一个与彩色图像兼容的三维卷积层。将权重和偏差设置为Wb在MAT文件中conv3dweights.mat分别。

filtersize = 5;numfilters = 32;加载Conv3dWeightstillay =卷积3dlayer(过滤,numfilters,......“重量”W,......'偏见',b)
layer = Convolution3DLayer with properties: Name: " Hyperparameters FilterSize: [5 5 5] NumChannels: 3 NumFilters: 32 Stride: [1 1 1] DilationFactor: [1 1 1] PaddingMode: 'manual' PaddingSize: [2x3 double] PaddingValue: 0 Learnable Parameters Weights: [5- d double] Bias: [1x1x1x32 double]显示所有属性

在这里,权重偏见属性包含指定的值。在培训时间,如果这些属性是非空的,则软件将指定的值用作初始权重和偏差。在这种情况下,该软件不使用初始化器功能。

假设输入的大小为28-×28-×28-1。用16个过滤器创建一个3-D卷积层,每个滤网高,宽度为4,深度为5.将所有尺寸的步幅设置为4。

确保卷积完全覆盖输入。为了使卷积完全覆盖输入,输出维数必须是整数。当没有扩张时-th输出尺寸计算为(图像尺寸() - 过滤()+填充()) /步() + 1。

  • 如果水平输出尺寸为整数,则需要两行填充:(28 - 6 + 2)/4 + 1 = 7。通过在图像的顶部和底部添加一行填充对称地分布填充。

  • 对于垂直输出维度为整数,不需要填充:(28 - 4+ 0)/ 4 + 1 = 7。

  • 对于深度输出尺寸为整数,需要一个填充平面:(28 - 5 + 1)/ 4 + 1 = 7.您必须在图像的前后分发填充。该示例将一个平面的填充器添加到图像背面。

构建卷积层。指定'填充'作为2×3矩阵。第一个行指定预准备,第二行指定三个维度中的后覆。

第=卷积3dlayer([6 4 5],16,“步”4'填充',[1 0 0;1 0 1])
layer = Convolution3DLayer with properties: Name: " Hyperparameters FilterSize: [6 4 5] NumChannels: 'auto' NumFilters: 16 Stride: [4 4 4] DilationFactor: [1 1 1] PaddingMode: 'manual' PaddingSize: [2x3 double] PaddingValue: 0 Learnable Parameters Weights: [] Bias:[]显示所有属性

更多关于

展开全部

参考文献

[1] Glorot,Xavier和Yoshua Bengio。“了解训练深馈神经网络的难度。”在第十三国际人工智能和统计国际会议的诉讼程序, 249 - 356。撒丁岛,意大利:AISTATS, 2010。

何开明,张翔宇,任少青,孙健深入研究整流器:在图像网分类上超越人类水平的表现。在2015年IEEE计算机愿景会议的诉讼程序, 1026 - 1034。计算机视觉,2015。

介绍了R2019a