主要内容

Crosschannelnorm.

交叉通道方形 - 使用当地响应进行正常化

描述

跨通道归一化操作在不同信道中使用本地响应来归一化每个激活。交叉通道归一化通常遵循a手术。交叉信道归一化也称为局部响应标准化。

请注意

此功能适用于交叉通道归一化操作dlarray数据。如果您想在layerGraph对象或数组,使用下面的图层:

例子

海底= Crosschannelnorm(dlXWindowsize.的每个元素的标准化dlX相对于附近通道中相同位置的局部值。中的规范化元素海底是由元素中dlX使用以下公式。

y x K + α. 年代 年代 w n d o w 年代 z e β

在哪里y是一个元素海底x是相应的元素dlXSS.信道区域内元素的平方和是由Windowsize.,α.β,K是归一化中的超参数。

例子

海底= Crosschannelnorm(dlXWindowsize.、“DataFormat”FMT)还指定维度格式FMT什么时候dlX是一个无格式化的人dlarray,除了前面语法的输入参数之外。输出海底一个未格式化的dlarray是否具有相同的维度顺序dlX

例子

海底= Crosschannelnorm(___名称,值除了以前语法中的输入参数之外,使用一个或多个名称值对参数指定选项。例如,'beta',0.8设置值β对比度常量0.8

例子

全部折叠

使用Crosschannelnorm.使用相邻通道的值对小批的每个观测值进行归一化。

创建输入数据作为随机值的十个观察,其高度和宽度为八个和六个通道。

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

使用通道窗口大小为3计算跨通道归一化。

海底= crosschannelnorm (dlX 3);

每次观察中的每个值dlX使用前一个通道中的元素和下一个通道中的元素进行规范化。

数组边缘的值使用来自更少通道的贡献进行规范化,这取决于通道窗口的大小。

将输入数据创建为具有两个和三个通道的高度和宽度的数组。

高度= 2;宽度= 2;频道= 3;x = x =(高度,宽度,频道);dlx = dlarray(x);

使用频道窗口大小正常化数据3.,一个 α. 1,一个 β 1和一个 K 1E-5.指定的数据格式SSC的

dly = crosschannelnorm(dlx,3,“α”,1,'beta',1,'K',1e-5,'datomformat'SSC的);

通过将三通道阵列重新装入2-D矩阵来比较原始和归一化数据中的值。

dlX =重塑(dlX 2 6)
dlX = 2x6美元1 1 1 1 1 1 1 1 1 1 1 1 1 1
dly =重塑(dly,2,6)
dlY = 2x6美元1.5000 1.5000 1.0000 1.0000 1.5000 1.5000 1.5000 1.5000 1.0000 1.0000

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

通常,跨信道归一化操作遵循Relu操作。例如,Googlenet架构包含卷积操作,然后是Relu和跨通道归一化操作。

功能modelfunction.本示例最后的定义说明了如何在模型中使用跨通道规范化。使用modelfunction.找到分组的卷积和relu激活某些输入数据,然后使用具有窗口大小的跨通道归一化标准化结果5

将输入数据创建为高度和宽度分别为10和4个通道的随机值的单个观察值。

高度= 10;宽度= 10;频道= 4;观察= 1;X =兰德(高度、宽度、通道观测);dlX = dlarray (X,'SSCB');

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

filtersize = [3 3];numchannelspergroup = 2;numfiltersprom = 3;numgroups = 2;params = struct;params.conv.weights = rand(过滤(1),过滤(2),numchannelspergoup,numfilterspergoup,numgroups);params.conv.bias = 0;

申请modelfunction.的数据dlX

海底= modelFunction (dlX params);
函数dlY = modelFunction(dlX,params);海底= relu(海底);海底= crosschannelnorm(海底,5);结束

输入参数

全部折叠

输入数据,指定为adlarray有或没有数据格式。什么时候dlX是一个无格式化的人dlarray,则必须使用'dataformat',fmt名称值对。

您可以指定最多两个维度dlX作为“年代”方面。

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

频道窗口的大小,控制用于归一成元素的通道数,指定为正整数。

如果Windowsize.是偶数,则窗口是不对称的。该软件着眼于以前地板((Windowsize-1)/ 2)渠道及以下地板((Windowsize)/ 2)频道。例如,如果Windowsize.4,然后该函数通过前一个通道中的相邻元素和下两个通道中的相邻元素对每个元素进行规范化。

例子:3.

数据类型:单身的|双倍的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32.

名称-值对的观点

指定可选的逗号分隔的对名称,值论点。名称参数名和价值是相应的价值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:'alpha',2e-4,'beta',0.8将乘法归一化常量设置为0.0002,对比度常数指数至0.8。

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

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

  • “年代”- 空间

  • 'C'- 渠道

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

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

  • “U”- 未指定

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

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

例子:“DataFormat”、“SSCB”

数据类型:char|细绳

归一化常数(α.)将指定为逗号分隔对的平方值的总和乘以“α”和一个数字标量。默认值为1E-4

例子:'alpha',2e-4

数据类型:单身的|双倍的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32.

对比度常数(β),指定为逗号分隔的配对组成'beta'并且数字标量大于或等于0.01.默认值为0.75

例子:'beta',0.8

数据类型:单身的|双倍的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32.

正常化hyperparameter (K)用于避免规范化中的奇点,指定为逗号分隔对组成'K'并且数字标量大于或等于1E-5.默认值为2

例子:'k',2.5

数据类型:单身的|双倍的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32.

输出参数

全部折叠

归一化数据,返回为dlarray.输出海底具有与输入相同的底层数据类型dlX

如果输入数据dlX是一个格式化的dlarray海底有相同的尺寸标签dlX.如果输入数据是未格式化的dlarray海底是一个无格式化的人dlarray与输入数据的维度顺序相同。

更多关于

全部折叠

跨通道标准化

Crosschannelnorm.函数基于指定的通道窗口中的本地响应标准每个激活响应。有关更多信息,请参阅定义当地反应正常化CrosschannelnormalizationLayer.参考页面。

扩展能力

介绍了R2020a