hzwer/ECCV2022-RIFE

关于蒸馏的一些困惑

Closed this issue · 2 comments

ZXMMD commented

作者您好,在IFNet中,分为学生网络(stu)和教师网络(block_tea),通过蒸馏损失(loss_distill),学生网络被引导学习更接近教师网络的光流估计(不知道我的理解是否正确)。我的困惑在于: 如果教师网络是一个预训练的光流估计模型,那么可以指导学生网络进行更准确的光流估计。但现在教师网络也是一个需要进行训练的IFBlock,如何保证教师网络输出的光流是准确的呢?是因为教师网络输入了gt吗?还是有别的什么机制原理?感谢您的解答🙏

hzwer commented

我做的第一个版本就是让预训练光流模型来指导学生网络
但是后来发现这样虽然训练稳定,但是预训练网络产生的光流并不完全适合插帧任务,所以也需要一起微调

我的想法是,蒸馏方法并不需要保证教师的结果是准确的,只要相对学生更准确就行了,输入 gt 是我尝试发现能让教师网络更好学习的一个方案
即使只是把更靠后的 block 的结果,类似 deep supervision 的方式让前面的 block 学习,也能起到加速训练的效果

ZXMMD commented

明白了,感谢解答!