clase _NormBase (Módulo): # 源码
"" "Base común de _InstanceNorm y _BatchNorm" ""
_version = 2
__constants__ = ['track_running_stats', 'momentum', 'eps',
'num_features', 'affine']
def __init __ (self , num_features, eps = 1e-5, momentum = 0.1, affine = True,
track_running_stats = True):
super (_NormBase, self) .__ init __ ()
self.num_features = num_features
self.eps = eps
self.momentum = momentum
self.affine = afín
self.track_running_stats = track_running_stats
si self.affine:
self.weight = Parámetro (antorcha.Tensor (num_features))
self.bias = Parámetro (torch.Tensor (num_features))
else:
self.register_parameter ('weight', None)
self.register_parameter ('bias', None)
if self.track_running_stats:
self.register_buffer ('running_mean', torch. ceros (num_features))
self.register_buffer ('running_var', torch.ones (num_features))
self.register_buffer ('num_batches_tracked', torch.tensor (0, dtype = torch.long))
else:
self.register_parameter ('running_mean' , None)
self.register_parameter ('running_var', None)
self.register_parameter ('num_batches_tracked', None)
self.reset_parameters ()
torch.nn.BatchNorm1d (num_features, eps = 1e-05, momentum = 0.1, affine = True, track_running_stats = True)
Consulte https://blog.csdn.net/LoseInVain/article/details/86476010 para más detalles.