model.eval()
方法会修改某些模块(层),这些模块在训练和推理时具有不同的行为。其中一些模块(层)在文档中列出了部分示例,例如:Dropout
、BatchNorm
等等。请参考特定模块的文档以了解它们在训练/推理模式下的行为是否会受到影响。是否有哪些模块会受到影响的详尽列表?
model.eval()
方法会修改某些模块(层),这些模块在训练和推理时具有不同的行为。其中一些模块(层)在文档中列出了部分示例,例如:Dropout
、BatchNorm
等等。请参考特定模块的文档以了解它们在训练/推理模式下的行为是否会受到影响。在Google上搜索 site:https://pytorch.org/docs/stable/generated/torch.nn. "during evaluation" ,可以发现以下模块受到影响:
基类 | 模块 | 条件 |
---|---|---|
_InstanceNorm |
InstanceNorm1d InstanceNorm2d InstanceNorm3d |
track_running_stats=True |
_BatchNorm |
BatchNorm1d BatchNorm2d BatchNorm3d SyncBatchNorm |
|
_DropoutNd |
Dropout Dropout2d Dropout3d AlphaDropout FeatureAlphaDropout |
BatchNorm
的层。 - Proko