以下是TF中的批次标准:
model = BatchNormalization(momentum=0.15, axis=-1)(model)
以下是Torch中的批次标准:
torch.nn.BatchNorm1d(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True, device=None, dtype=None)
您可以看到,还有一个参数:num_features
.这很烦人。
假设我不想在torch中使用affine
,TF和Torch中的批处理规范应该是相同的。有没有办法避免像Tensorflow一样在PyTorch的批处理规范中指定“num_features”?
1条答案
按热度按时间4uqofj5v1#
如果你真的不喜欢指定这个参数,你可以看看lazy batch norm。
否则,您可以指定
num_features
为任意值(None
?),只要affine
和track_running_stats
都是False
。如果您查看批处理范数函数的基类(可在此链接获得):您可以看到,当
affine
为True时,num_features
用于设置self.weight
和self.bias
;当track_running_stats
为True时,num_features
还用于设置running_mean
和running_std
。