HiLab-git / SSL4MIS

Semi Supervised Learning for Medical Image Segmentation, a collection of literature reviews and code implementations.
MIT License
2.13k stars 381 forks source link

transforms 对label操作,semi-supervise大多数数据unlabel #52

Closed Factoryfromhere closed 2 years ago

Factoryfromhere commented 2 years ago

train_mean_teachers_3D + BraTs2019,Dataset默认将所有数据的image和label都读入了,实际semi-supervise大多数数据unlabel,后面的transform也是作用于label

SuperJunier666 commented 2 years ago

我也发现了这个问题,他的网络虽然没用label,但是计算损失时都会用到label

Luoxd1996 commented 2 years ago

您好,请您仔细阅读代码,计算损失函数包括diceh和ce,here. 哪里用到了没有labeled数据的label了?label_batch[:args.labeled_bs] 指的是仅考虑标注数据标签,无标注数据是伪标签pseudo_sup.

Factoryfromhere commented 2 years ago

loss没什么问题,数据处理这块,比如brants2019.py里面这个函数:就对label做了操作 image

Luoxd1996 commented 2 years ago

您好,这确实是一个问题,这个地方使用的一个dataloader,和重写的batchsampler,没有其他的最优解了,您可以定义两个dataloader解决这个问题,或者是参见here这个分支里面的写法。 祝好! 罗。