zhengli97 / CTKD

[AAAI 2023] Official PyTorch Code for "Curriculum Temperature for Knowledge Distillation"
https://zhengli97.github.io/CTKD/
Apache License 2.0
156 stars 12 forks source link

temp在一次backward后,就从15.6212变成了nan #9

Closed ufestkc closed 11 months ago

ufestkc commented 11 months ago

你好,我是将你们code里跟temp有关的部分替换了我自己的蒸馏方法里的温度,在第一次loss.backward后,temp的值从15.6212变成了nan,且一直是nan,请问有什么问题或建议吗

zhengli97 commented 11 months ago

可以尝试改小λ的值?用较低的值去试试看会不会收敛

ufestkc commented 11 months ago

可以尝试改小λ的值?用较低的值去试试看会不会收敛

我发现是因为引入了dkd的loss,去掉dkd loss就能正常收敛。然后我看run_cifar_distill.sh里beta设为0,也是因为这个吗(但我把dkdloss的权重也设为0也是nan,反之只要总的loss里有dkdloss就不行)

zhengli97 commented 11 months ago

跑dkd的时候,run_cifar_distill.sh里面是alpha设成0,beta设成1的

JINzezhong7 commented 7 months ago

请问解决了吗,我也遇到了这个问题,也是一下就变成nan

ufestkc commented 7 months ago

请问解决了吗,我也遇到了这个问题,也是一下就变成nan 损失函数里的KL散度里,分母那一项(好像是教师logits)加上一个1e-10就行,只是不知道为什么分母会变0

zhengli97 commented 7 months ago

加上了这个之后的temp收敛下来了吗?大概值的范围是多少?

JINzezhong7 commented 7 months ago

请问具体是在哪里加呢,

image

是nckd那里还是tckd那里

ufestkc commented 7 months ago

对收敛了,范围忘了,应该差不多的

ufestkc commented 7 months ago

请问具体是在哪里加呢, image 是nckd那里还是tckd那里

好像是两个地方都要,你试试吧

zhengli97 commented 7 months ago

好嘞 谢谢你的反馈 我后面会把这个更新到QA里