BatchNormalizationLayer
表示通过学习数据均值和方差可使输入数据归一化的可训练网层.
更多信息和选项
- BatchNormalizationLayer 通常用在 NetChain、NetGraph 等中,规范并加快网络培训.
- 可以包括以下可选参数:
-
"Epsilon" 0.001` 稳定性参数 Interleaving False 通道维度的位置 "Momentum" 0.9 训练过程中所用的动量 - 当设置 InterleavingFalse 时,通道维度被视为输入和输出数组的第一维.
- 当设置 InterleavingTrue 时,通道维度被视为输入和输出数组的最后一维.
- 可以包括以下可学习数组:
-
"Biases" Automatic 可学习的偏差数组 "MovingMean" Automatic 均值的移动估计 "MovingVariance" Automatic 方差的移动估计 "Scaling" Automatic 可学习的缩放数组 - 如果采用 Automatic 设置,当使用 NetInitialize 或 NetTrain 时,将自动初始化偏差、缩放、移动平均和移动方差数组.
- 可包括以下训练参数:
-
LearningRateMultipliers Automatic 数组的学习速率倍增器 - 如果 LearningRateMultipliers 为 0 或 "Momentum" 为 1,在使用 NetTrain 进行训练期间,BatchNormalizationLayer 冻结 "MovingVariance" 和 "MovingMean" 的值.
- 如果已设定了偏差、缩放、移动平均和移动方差,BatchNormalizationLayer[…][input] 通过应用该网络层显式计算输出.
- BatchNormalizationLayer[…][{input1,input2,…}] 显式计算每一个 inputi 的输出.
- 当 NumericArray 作为输入时,输出将是 NumericArray.
- BatchNormalizationLayer 开放下列端口,以便用于 NetGraph 等中:
-
"Input" 一个向量、矩阵或高价数组 "Output" 一个向量、矩阵或高价数组 - 当它不能从一个更大的网的其他层中推断时,选项 "Input"->{n1,n2,…} 可用于固定 BatchNormalizationLayer 的输入维度.
- NetExtract 可用来从 BatchNormalizationLayer 对象中提取偏差、缩放、移动平均和移动方差数组.
- Options[BatchNormalizationLayer] 给出构建网络层的默认选项列表. Options[BatchNormalizationLayer[…]] 给出在某些数据上运行网络层的默认选项列表.
- Information[BatchNormalizationLayer[…]] 给出关于网络层的报告.
- Information[BatchNormalizationLayer[…],prop] 给出 BatchNormalizationLayer[…] 的属性 prop 的值. 可能的属性与 NetGraph 相同.
范例
打开所有单元关闭所有单元基本范例 (2)
范围 (4)
Ports (2)
创建一个接受 3 阶数组并返回 3 阶数组的已初始化的 BatchNormalizationLayer:
创建一个接受向量并返回向量的已初始化的 BatchNormalizationLayer:
使用 NetEvaluationMode 来使用 BatchNormalizationLayer 的训练行为:
Parameters (2)
"Biases" (1)
创建一个带有 "Biases" 参数初始值的 BatchNormalizationLayer:
由 NetInitialize 选择的 "Biases" 默认值是零向量:
"Scaling" (1)
创建一个已初始化的 BatchNormalizationLayer,其中设 "Scaling" 参数为零,"Biases" 参数设为自定义的值:
NetInitialize 选择的 "Scaling" 默认值是 1 的向量:
选项 (2)
"Epsilon" (1)
创建一个带有明确指定 "Epsilon" 参数的 BatchNormalizationLayer:
"Momentum" (1)
创建一个 BatchNormalizationLayer,其中明确指定 "Momentum" 参数:
应用 (1)
BatchNormalizationLayer 通常被插入在 ConvolutionLayer 和它的激活函数之间,以稳定并加速训练:
属性和关系 (1)
可能存在的问题 (3)
指定 "MovingVariance" 参数的负值,在计算时会导致数值错误:
BatchNormalizationLayer 不可以被初始化,直到知道其所有的输入和输出维数:
不能共享 BatchNormalizationLayer 的 "MovingMean" 和 "MovingVariance" 数组:
创建具有共享数组的 BatchNormalizationLayer:
"Scaling" 和 "Biases" 数组被共享,但 "MovingMean" 或 "MovingVariance" 数组没有:
文本
Wolfram Research (2016),BatchNormalizationLayer,Wolfram 语言函数,https://reference.wolfram.com/language/ref/BatchNormalizationLayer.html (更新于 2020 年).
CMS
Wolfram 语言. 2016. "BatchNormalizationLayer." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/BatchNormalizationLayer.html.
APA
Wolfram 语言. (2016). BatchNormalizationLayer. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/BatchNormalizationLayer.html 年