SyncBatchNorm

class SyncBatchNorm(num_features, eps=1e-05, momentum=0.9, affine=True, track_running_stats=True, freeze=False, group=WORLD, **kwargs)[源代码]

对于分布式训练执行组多机同步版本的 BatchNormalization 操作。

参数
  • num_features – 通常是形状为 \((N, C, H, W)\) 输入数据的 \(C\) 或者维度低于四维的输入的最高维。

  • eps – 添加到分母的单个值,增加数值稳定性。默认:1e-5

  • momentum – 用于计算 running_meanrunning_var 的值。默认:0.9

  • affine – 单个布尔值,当设置为 True ,那么这个模块具有可学习的仿射(affine)参数。默认:True

  • track_running_stats – 当设置为 True,则这个模块跟踪运行时的不同batch的均值和方差。当设置为 False,该模块不跟踪这样的统计数据并在训练和eval模式下始终使用当前批统计数据。默认: True

  • freeze – 设置为True时,此模块不会更新运行运行时平均值和运行时方差,使用运行时平均值和方差而不是批次均值和批次方差来标准化输入。这个参数产生作用仅在使用 track_running_stats=True 初始化模块时有效并且模块处于训练模式。默认:False

  • group (Optional[Group]) – 多机通信中的分组,用于计算组内的均值和方差。默认为全局分组 WORLD