-
Notifications
You must be signed in to change notification settings - Fork 190
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
关于 classification mutual learning #42
Comments
你好,我并不是文章的作者。。。 需要注意classification loss和KLD loss的比重,我的实验中两者是1:1,另外,我没有对KLD的特征维度取平均,只取了样本的平均。 |
特征维度取平均是什么意思,就是 size_average 这个参数吗?会有很大影响吗,不太懂 |
是的,是 |
我发现改成 False 后 loss 很难下降,修改 loss weight 也没什么变化。另外我对 pytorch 不太熟,不是很明白您的程序,我这样写有问题吗? """compute p1 p2"""
logits1 = FC1(Feat1(inputs).view(-1,256))
logits2 = FC2(Feat2(inputs).view(-1,256))
"""update net1"""
l1 = F.cross_entropy(logits1, labels)
kl1 = F.kl_div(F.log_softmax(logits1, dim=1),F.softmax(logits2.detach(), dim=1),False)/logits1.shape[0]
loss1 = l1 + kl1
optimizer1.zero_grad()
loss1.backward()
optimizer1.step()
"""compute p1"""
logits1 = FC1(Feat1(inputs).view(-1,256))
"""update net2"""
l2 = F.cross_entropy(logits2, labels)
kl2 = F.kl_div(F.log_softmax(logits2, dim=1),F.softmax(logits1.detach(), dim=1),False)/logits2.shape[0]
loss2 = l2 + kl2
optimizer2.zero_grad()
loss2.backward()
optimizer2.step() |
你好,单看这个部分的话没发现什么问题,所以我也看不出来原因。 |
你好,单纯classification probability mutual loss我之前有在SGD + staircase学习率下降方式上实验过,可以提升,其它优化器和学习率下降方式没有实验过。 |
谢谢,我后来参考 DML 的程序计算 KL ,现在可以正常收敛了,在 cifar100 上也看到了提升。
这里也相当于 |
@lawpdas 你好,我是论文的一作,关于mutual这一个分支,原版论文是使用了ResNet50和ResNet-Xception50,mutual这种方法有点像模型ensemble,需要两个网络尽可能不一致,如果用两个ImageNet初始化的ResNet50可能没什么效果。 |
谢谢,有用的信息 |
你好,你的网络是怎么设计的啊?能分享一下GitHub链接吗? |
请问可以分享你的复现代码吗?谢谢~~jack.zhaoqingsong[at]gmail.com |
您好,我按照 Deep Mutual Learning复现 classification 的 mutual learning,但是一直没效果。偶然看到您论文里这部分实验,想问一下单独只做 classification 的 mutual learning 有什么要注意的?
The text was updated successfully, but these errors were encountered: