Skip to content
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

请问MICCAI 2020 Thyroid Nodule Segmentation Challenge比赛的方案方便开源吗? #114

Closed
yu-Mas opened this issue Dec 2, 2020 · 6 comments

Comments

@yu-Mas
Copy link

yu-Mas commented Dec 2, 2020

首先感谢大佬对u^2net的开源!
经过一段时间的使用,我发现u^2net小目标的分割效果没有大目标的好,请问大佬有什么改善的思路吗?
同时想请问下大佬有考虑对MICCAI 2020 Thyroid Nodule Segmentation Challenge的比赛方案开源吗?现在比赛都是无脑堆efficientnet backbone,很高兴能看到有独立思考的U^2net取得好成绩,也想学习下大佬的思路对模型进行魔改!
谢谢大佬~

@xuebinqin
Copy link
Owner

xuebinqin commented Dec 2, 2020 via email

@yu-Mas
Copy link
Author

yu-Mas commented Dec 2, 2020

关于小目标:我使用的是自己的数据集并重新进行训练,数据集共2K张,分辨率为512*512,并未使用pre_trained,多个loss权重也是直接相加,总共训练300epoch,但一般20个epoch左右就可以接近最优结果(iou误差2个百分点内)。现在面临的情况是大目标效果很赞,小目标概率值不高,我目前想从模型的方向进行魔改。设想方案有:(1)减少block中的下采样次数,譬如使用RSU6代替RSU7等;(2)减少层数,原本encoder共下采样5次,我改为4次或3次等;(3)直接去除decoder中的下采样。相关试验我开始,但受限于gpu的数量,我并未能很好的使用控制变量法。故想请教大佬之前有做过类似的消融实验吗,减少下采样次数(无论是block还是layer)的想法会make sense吗?

关于比赛:我很喜欢使用u2net来打比赛,容易训练而且代码通俗易懂,魔改方便,傻瓜式训练效果就不差了,魔改潜力还巨大,但我感觉我个人在训练的过程总是有点迷茫,训练好baseline后不知道怎么完善,最后名次一般在中上达不到top。想请教下大佬在训练u2net过程的trick 以及如何改进baseline(譬如想到一个改进方向是在训练好的模型上改还是重新训练)?

很感谢大佬回复这么多,再次表达谢意!

@xuebinqin
Copy link
Owner

关于小目标:我使用的是自己的数据集并重新进行训练,数据集共2K张,分辨率为512*512,并未使用pre_trained,多个loss权重也是直接相加,总共训练300epoch,但一般20个epoch左右就可以接近最优结果(iou误差2个百分点内)。现在面临的情况是大目标效果很赞,小目标概率值不高,我目前想从模型的方向进行魔改。设想方案有:(1)减少block中的下采样次数,譬如使用RSU6代替RSU7等;(2)减少层数,原本encoder共下采样5次,我改为4次或3次等;(3)直接去除decoder中的下采样。相关试验我开始,但受限于gpu的数量,我并未能很好的使用控制变量法。故想请教大佬之前有做过类似的消融实验吗,减少下采样次数(无论是block还是layer)的想法会make sense吗?

一般来说减小下采样次数会削弱模型的表达能力,导致结果的下降,小目标确实是个比较tracky的问题。因为U^2-Net最后的map是fuse 前面多个sideoutput的结果,但是有的sideoutput是从很小的分辨率上采样的,所以你可以考虑最终只fuse比较高分辨率的结果。 另外可以考虑对小目标的数据作augmentation.

关于比赛:我很喜欢使用u2net来打比赛,容易训练而且代码通俗易懂,魔改方便,傻瓜式训练效果就不差了,魔改潜力还巨大,但我感觉我个人在训练的过程总是有点迷茫,训练好baseline后不知道怎么完善,最后名次一般在中上达不到top。想请教下大佬在训练u2net过程的trick 以及如何改进baseline(譬如想到一个改进方向是在训练好的模型上改还是重新训练)?

这个问题好难,打比赛最直接就是各种ensemble上一遍包括bagging, boosting还有TTA,想通过改网络结构来获取提升的话得根据具体的数据来做,也没有一个统一的标准。我一般都是重新训练。

@yu-Mas
Copy link
Author

yu-Mas commented Dec 11, 2020

明白,谢谢您的建议。在我的实验中所有sidepoutput一起求loss确实会收敛的很快,但副作用是会限制相当大的模型性能,往往达不到特别好的效果,下回我会尝试只用高分辨率的一两个sideoutput。大佬有尝试过和softdice之类的混用吗

@xuebinqin
Copy link
Owner

xuebinqin commented Dec 11, 2020 via email

@yu-Mas
Copy link
Author

yu-Mas commented Dec 11, 2020

谢谢大佬长期很耐心很详细的解答!
祝大佬学习工作顺利,顶会发到手软~

@yu-Mas yu-Mas closed this as completed Dec 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants