主要内容

crosschannelnorm

交叉道square-normalize使用本地响应

自从R2020a

描述

横跨海峡的规范化操作使用本地响应在不同渠道规范化每个激活。横跨海峡的正常化通常遵循一个线性整流函数(Rectified Linear Unit)操作。横跨海峡的规范化也被称为当地反应正常化。

请注意

这个函数应用横跨海峡的标准化操作dlarray数据。如果你想应用标准化交叉流道内layerGraph对象或数组,使用以下层:

例子

Y= crosschannelnorm (X,windowSize)规范化的每个元素X对当地的值在同一个位置附近的通道。规范化的元素Y计算元素的X使用下面的公式。

y = x ( K + α * 年代 年代 w n d o w 年代 z e ) β

在哪里y是一种元素的Y,x相应的元素吗X,党卫军中元素的平方和定义的通道地区吗windowSize,α,β,Khyperparameters正常化。

例子

Y= crosschannelnorm (X,windowSize、“DataFormat”FMT)还指定了尺寸格式FMTX是一个非格式化dlarray除了输入参数之前的语法。输出Y是一个非格式化dlarray维度订单一样吗X

例子

Y= crosschannelnorm (___,名称,值)指定选项使用一个或多个名称-值对参数除了输入参数在以前的语法。例如,“贝塔”,0.8设置的值β对比恒0.8

例子

全部折叠

使用crosschannelnorm规范化mini-batch使用的每个观测值从相邻的通道。

创建十观测的随机值的输入数据的高度和宽度8和6通道。

身高= 8;宽度= 8;渠道= 6;观察= 10;X =兰德(高度、宽度、通道观测);X = dlarray (X,“SSCB”);

计算横跨海峡的规范化使用窗口大小的三个频道。

Y = crosschannelnorm (X, 3);

在每个观察每个值X规范化使用的元素在前面的通道和元素在未来的通道。

值数组的边缘规范化使用的贡献较少的通道,根据频道窗口的大小。

创建一个数组的输入数据的高度和宽度的两个和三个频道。

身高= 2;宽度= 2;渠道= 3;X = 1(高度、宽度、渠道);dlX = dlarray (X);

规范化的数据使用channel-window大小3,一个 α 1,一个 β 1和一个 K 1 e-5。指定的数据格式SSC的

海底= crosschannelnorm (dlX 3“α”,1“β”,1“K”1 e-5“DataFormat”,SSC的);

比较原始的值和重塑三通道的规范化数据数组为二维矩阵。

dlX =重塑(dlX 2 6)
dlX = 2 x6 dlarray 1 1 1 1 1 1 1 1 1 1 1 1
海底=重塑(海底2 6)
海底= 2 x6 dlarray 1.5000 1.5000 1.0000 1.0000 1.5000 1.5000 1.5000 1.5000 1.0000 1.0000 1.5000 1.5000

第一个和最后一个频道的平方和计算仅使用两个值。中间的通道,平方和包含所有三个通道的值。

通常,横跨海峡的规范化操作遵循ReLU操作。例如,GoogLeNet架构包含卷积操作随后ReLU和横跨海峡的规范化操作。

这个函数modelFunction定义在这个例子展示了如何使用横跨海峡的标准化模型。使用modelFunction找到一些输入数据的分组卷积和ReLU激活然后规范化结果使用横跨海峡的标准化的窗口大小5

创建输入数据作为一个观察的随机值的高度和宽度十和四个频道。

身高= 10;宽度= 10;渠道= 4;观察= 1;X =兰德(高度、宽度、通道观测);dlX = dlarray (X,“SSCB”);

创建分组卷积操作的参数。对于权重,使用一个过滤器的高度和宽度三个,每组两个渠道,每组三个过滤器,两组。使用一个值为零的偏见。

filterSize = 3 [3];numChannelsPerGroup = 2;numFiltersPerGroup = 3;numGroups = 2;params =结构;params.conv。we我ghts = rand(filterSize(1),filterSize(2),numChannelsPerGroup,numFiltersPerGroup,numGroups); params.conv.bias = 0;

应用modelFunction的数据dlX

海底= modelFunction (dlX params);
函数海底= modelFunction (dlX params)海底= dlconv (dlX, params.conv.weights params.conv.bias);海底= relu(海底);海底= crosschannelnorm(海底,5);结束

输入参数

全部折叠

输入数据,指定为一个dlarray有或没有数据格式。当X是一个非格式化dlarray,您必须指定数据格式使用FMT, DataFormat”名称-值对。

你可以指定两个维度X作为“年代”维度。

数据类型:|

通道窗口的大小,控制通道的数量用于每个元素的正常化,指定为一个正整数。

如果windowSize是偶数,那么窗口是不对称的。看着前面的软件地板((windowSize-1) / 2)渠道和下面的地板((windowSize) / 2)频道。例如,如果windowSize4每个元素,那么该函数可实现通过邻国在前面的通道和邻国在接下来的两个渠道。

例子:3

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

名称-值参数

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

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

例子:“阿尔法”,2的军医,β,0.8乘法归一化常数设置为0.0002,对比常数指数为0.8。

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

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

  • “S”——空间

  • “C”——频道

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

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

  • “U”——未指明的

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

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

数据类型:字符|字符串

归一化常数(α)繁殖的平方的总和值,指定为逗号分隔组成的“α”和一个数字标量。默认值是1的军医

例子:“阿尔法”,2的军医

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

对比常数(β),指定为逗号分隔组成的“β”和一个数字标量大于或等于0.01。默认值是0.75

例子:“贝塔”,0.8

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

正常化hyperparameter (K)用于避免奇点的正常化,指定为逗号分隔组成的“K”和一个数字标量大于或等于1 e-5。默认值是2

例子:“K”, 2.5

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

输出参数

全部折叠

归一化数据,作为一个返回dlarray。输出Y有相同的底层数据类型作为输入X

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

更多关于

全部折叠

横跨海峡的正常化

crosschannelnorm基于当地的响应函数可实现每个激活响应在一个指定的通道窗口。有关更多信息,请参见的定义交叉道归一化层crossChannelNormalizationLayer参考页面。

扩展功能

版本历史

介绍了R2020a