PyTorch中知识蒸馏浅讲

知识蒸馏

在 PyTorch 中,使用 teacher_model.eval() 和冻结教师模型参数是知识蒸馏(Knowledge Distillation)中的关键步骤。

​1. teacher_model.eval() 的作用

目的:

将教师模型切换到评估模式,影响某些特定层(如 Dropout、BatchNorm)的行为。

​具体影响:

  • ​Dropout 层
    在训练模式下,Dropout 层会随机丢弃神经元以防止过拟合;但在评估模式下,Dropout 层会保持所有神经元激活

  • ​BatchNorm 层
    在训练模式下,BatchNorm 使用当前 batch 的均值和方差进行归一化,并更新移动平均统计量;但在评估模式下,BatchNorm 会固定使用训练阶段累积的全局均值和方差

为什么需要:

  • 确保教师模型的推理行为稳定,避免随机性(如 Dropout)或统计量波动(如 BatchNorm)影响输出结果的一致性。
  • 在生成软标签(Soft Targets)时,保持教师模型输出的可靠性

你可能感兴趣的:(pytorch,人工智能,python)