PyTorch中知识蒸馏浅讲

[复制链接]
发表于 2025-10-2 11:44:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
知识蒸馏

   在 PyTorch 中,使用 teacher_model.eval() 和冻结西席模子参数是知识蒸馏(Knowledge Distillation)中的关键步调。
  ​1. teacher_model.eval() 的作用

目的:
将西席模子切换到评估模式,影响某些特定层(如 Dropout、BatchNorm)的举动。
​详细影响:

      
  • ​Dropout 层:
    在练习模式下,Dropout 层会随机抛弃神经元以防止过拟合;但在评估模式下,Dropout 层会保持全部神经元激活
      
  • ​BatchNorm 层:
    在练习模式下,BatchNorm 使用当前 batch 的均值和方差举行归一化,并更新移动匀称统计量;但在评估模式下,BatchNorm 会固定使用练习阶段累积的全局均值和方差

为什么须要:

      
  • 确保西席模子的推理举动稳固,克制随机性(如 Dropout)或统计量颠簸(如 BatchNorm)影响输出效果的同等性。  
  • 在天生软标签(Soft Targets)时,保持西席模子输出的可靠性
2. parameters.requires_grad = False 的作用

​目的:
冻结西席模子的全部参数,防止在反向流传时更新梯度。
​详细影响:


回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表