主要内容

instanceNormalizationLayer

实例的归一化层

描述

实例规范化层为每个观察独立地跨每个通道规范化一个小批数据。为了提高卷积神经网络训练的收敛性和降低对网络超参数的敏感性,在卷积层和非线性层之间使用实例归一化层,如ReLU层。

归一化后,该层用一个可学习的比例因子缩放输入γ平移一个可学习的偏移量β

创建

描述

例子

层= instanceNormalizationLayer创建一个实例规范化层。

例子

层= instanceNormalizationLayer(名称、值)创建一个实例规范化层并设置可选的ε参数和初始化学习率和正规化,的名字使用一个或多个名称-值参数的属性。可以指定多个名称-值参数。将每个属性名用引号括起来。

例子:instanceNormalizationLayer('名称',' instancenorm ')用名称创建一个实例规范化层“instancenorm”

属性

全部展开

实例正常化

常数要添加到小批变量中,指定为等于或大于的数值标量1 e-5

在归一化之前,该层将这个常数添加到小批方差中,以确保数值的稳定性,并避免除零。

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

此属性是只读的。

输入通道的数量,指定为以下之一:

  • “汽车”—训练时自动确定输入通道数量。

  • 正整数-为指定的输入通道数量配置层。NumChannels并且层输入数据中的通道数量必须匹配。例如,如果输入是RGB图像,那么NumChannels必须是3。如果输入是带有16个滤波器的卷积层的输出,那么NumChannels必须是16。

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

参数和初始化

函数初始化通道规模因子,指定为以下之一:

  • “的”-用1初始化信道规模因子。

  • “零”-初始化信道规模因子为零。

  • “narrow-normal”-通过从均值为零、标准差为0.01的正态分布中独立采样,初始化通道规模因子。

  • 函数句柄——使用自定义函数初始化通道比例因子。如果指定了函数句柄,则该函数必须具有以下形式规模= func(深圳),在那里深圳是秤的大小。示例请参见指定自定义权重初始化函数

时,该层才初始化通道规模因子规模属性是空的。

数据类型:字符|字符串|function_handle

函数初始化通道偏移量,指定为以下之一:

  • “零”—用0初始化通道偏移量。

  • “的”-用1初始化通道偏移量。

  • “narrow-normal”-通过从均值为零、标准差为0.01的正态分布中独立采样,初始化通道偏移量。

  • 函数句柄——使用自定义函数初始化通道偏移量。如果指定了函数句柄,则该函数必须具有以下形式抵消= func(深圳),在那里深圳是秤的大小。示例请参见指定自定义权重初始化函数

该层只初始化通道偏移量时抵消属性是空的。

数据类型:字符|字符串|function_handle

渠道规模因素γ,指定为数值数组。

信道规模因子是可学习的参数。当你训练一个网络时,如果规模非空的,那么trainNetwork使用规模属性作为初始值。如果规模是空的,然后trainNetwork使用指定的初始化式ScaleInitializer

在培训时,规模是以下之一:

  • 对于二维图像输入,大小为1乘1乘-的数字数组NumChannels

  • 对于3-D图像输入,大小为1 × 1 × 1 × -的数字数组NumChannels

  • 对于特征或序列输入,大小的数字数组NumChannels1

数据类型:|

通道补偿β,指定为数值数组。

通道偏移量是可学习的参数。当你训练一个网络时,如果抵消非空的,那么trainNetwork使用抵消属性作为初始值。如果抵消是空的,然后trainNetwork使用指定的初始化式OffsetInitializer

在培训时,抵消是以下之一:

  • 对于二维图像输入,大小为1乘1乘-的数字数组NumChannels

  • 对于3-D图像输入,大小为1 × 1 × 1 × -的数字数组NumChannels

  • 对于特征或序列输入,大小的数字数组NumChannels1

数据类型:|

学习率和正规化

学习率因子为比例因子,指定为非负标量。

该软件将该因子乘以全局学习率,以确定一层中比例因子的学习率。例如,如果ScaleLearnRateFactor2,则该层中尺度因子的学习率为当前全局学习率的两倍。该软件根据指定的设置来确定全局学习率trainingOptions函数。

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

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

该软件将该因子乘以全局学习率,以确定一层中偏移量的学习率。例如,如果OffsetLearnRateFactor2,则该层中偏移量的学习率为当前全局学习率的两倍。该软件根据指定的设置来确定全局学习率trainingOptions函数。

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

l2比例因子的正则化因子,指定为非负标量。

软件将这个因子乘以全局L2正则化因子来确定一层中尺度因子的学习率。例如,如果ScaleL2Factor2,然后是L2层中偏移量的正则化是全局L的两倍2正则化因子。可以指定全局L2正则化因子使用trainingOptions函数。

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

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

软件将这个因子乘以全局L2正则化因子来确定一层中偏移量的学习率。例如,如果OffsetL2Factor2,然后是L2层中偏移量的正则化是全局L的两倍2正则化因子。可以指定全局L2正则化因子使用trainingOptions函数。

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

层名,指定为字符向量或字符串标量。为数组输入,trainNetworkassembleNetworklayerGraph,dlnetwork函数自动为具有此名称的层分配名称

数据类型:字符|字符串

此属性是只读的。

层的输入数。该层只接受单个输入。

数据类型:

此属性是只读的。

输入图层名称。该层只接受单个输入。

数据类型:细胞

此属性是只读的。

层的输出数量。这个层只有一个输出。

数据类型:

此属性是只读的。

输出层的名称。这个层只有一个输出。

数据类型:细胞

例子

全部折叠

用名称创建一个实例规范化层“instancenorm”

层= instanceNormalizationLayer (“名字”“instancenorm”
Name: ' instancenorem ' NumChannels: 'auto' Hyperparameters Epsilon: 1.0000e-05学习性参数Offset: [] Scale:[]显示所有属性

对象中包含实例规范化层数组中。

layers = [imageInputLayer([28 28 3]) convolution2dLayer(5,20) instanceNormalizationLayer reluLayer maxPooling2dLayer(2,“步”2) fullyConnectedLayer(10) softmaxLayer classificationLayer]
2”二维卷积20 5x5卷积与stride[1 1]和填充[0 0 0 0]3”实例归一化实例归一化4”ReLU ReLU 5”二维最大池化2x2最大池化与stride[2 2]和填充[0 0 0 0]6”全连接10全连接层7”Softmax Softmax 8”分类输出crossentropyex

算法

实例规范化操作对元素进行规范化x通过先计算均值来计算输入μ和方差σ2在每个观测的每个通道的空间和时间维度上独立。然后,它计算归一化激活为

x x μ σ 2 + ϵ

在哪里ϵ是一个常数,当方差非常小时,它可以提高数值的稳定性。

为了考虑均值和单位方差为零的输入对于实例归一化之后的操作不是最优的可能性,实例归一化操作使用转换进一步转移和扩展激活

y γ x + β

的偏移量β和规模因素γ是在网络训练过程中更新的可学习参数。

版本历史

介绍了R2021a

Baidu
map