Crosschannelnorm.

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

描述

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

笔记

此功能适用于交叉通道归一化操作dlarray.数据。如果要在a中应用跨通道归一化分层图对象或者数组,使用以下图层:

例子

d= Crosschannelnorm(DLX.Windowsize.规范化每个元素DLX.关于附近频道相同位置的局部值。标准化的元素d由元素计算DLX.使用以下公式。

y = X K. + α * S. S. W. 一世 N D. O. W. S. 一世 Z. E. β

在哪里y是一个元素dX是相应的元素DLX.SS.是由其定义的频道区域中元素的正方形的总和Windowsize., 和αβ, 和K.是标准化中的Quand参数。

例子

d= Crosschannelnorm(DLX.Windowsize.,'datomformat',fmt)还指定维度格式FMT.什么时候DLX.是一个无格式化的人dlarray.,除了输入参数上一个语法之外。输出d是一个不形式的dlarray,与尺寸顺序相同DLX.

例子

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

例子

全部收缩

Crosschannelnorm.使用来自相邻通道的值的每个观察迷你批次的每次观察。

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

高度= 8;宽度= 8;频道= 6;观察= 10;x = rand(高度,宽度,频道,观察);dlx = dlarray(x,'SSCB');

使用三个通道窗口大小计算跨通道归一化。

dly = crosschannelnorm(dlx,3);

每次观察中的每个值DLX.使用先前通道中的元素和下一个通道中的元素进行标准化。

阵列边缘的值根据频道窗口的大小使用较少频道的贡献标准化。

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

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

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

dly = crosschannelnorm(dlx,3,'Α',1,'beta',1,'K',1E-5,'datomformat''SSC');

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

DLX = REPAPE(DLX,2,6)
DLX = 2x6 dlarray1 1 1 1 1 1 1 1 1 1 1 1 1 1
dly =重塑(dly,2,6)
DLY = 2x6 dlarray 1.5000 1.5000 1.0000 1.0000 1.5000 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;宽度= 10;频道= 4;观察= 1;x = rand(高度,宽度,频道,观察);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.

dly = modelfunction(dlx,params);
功能DLY = MODELFUNCTION(DLX,PARAMS)DLY = DLCONV(DLX,PARAMS.CONV.weights,params.conv.bias);dly = relu(dly);dly =交叉脉沟(Dly,5);结尾

输入参数

全部收缩

输入数据,指定为adlarray.有或没有数据格式。什么时候DLX.是一个无格式化的人dlarray.,您必须使用使用的数据格式FMT, DataFormat”名称值对。

您可以指定最多两个维度DLX.作为'方面。

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

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

如果Windowsize.甚至,然后窗口是不对称的。该软件看起来上一个地板((Windowsize-1)/ 2)频道和以下内容地板((Windowsize)/ 2)渠道。例如,如果Windowsize.4.然后,该函数通过其邻居在上一个频道中并由接下来的两个通道中的邻居将每个元素标准化。

例子:3.

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

名称值对参数

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

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

未格式化的输入数据的维度顺序,指定为逗号分隔对组成'datomformat'和一个字符数组或字符串FMT.为数据的每个维度提供标签。每个角色FMT.必须是以下之一:

  • '- 空间

  • 'C'- 渠道

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

  • 'T'- 时间(例如,序列)

  • 'U'- 未指定

您可以指定标记的多个维度'或者'U'.你可以使用标签'C''B', 和'T'最多一次。

您必须指定'datomformat'当输入数据时DLX.不是格式化的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.

输出参数

全部收缩

标准化数据,作为a返回dlarray..输出d具有与输入相同的底层数据类型DLX.

如果输入数据DLX.是一个格式化的dlarray.d具有相同的维度标签DLX..如果输入数据是未格式化的dlarray.d是一个无格式化的人dlarray.与输入数据相同的维度顺序。

更多关于

全部收缩

跨通道标准化

Crosschannelnorm.函数将基于指定通道窗口中的局部响应的每个激活响应归一化。有关更多信息,请参见本地响应正常化在这一点CrosschannelnormalizationLayer.参考页面。

扩展能力

在R2020A中介​​绍