yhygao / CBIM-Medical-Image-Segmentation

A PyTorch framework for medical image segmentation
Apache License 2.0
260 stars 46 forks source link

几点个人意见 #6

Closed 675492062 closed 2 years ago

675492062 commented 2 years ago

1)mkdir在不在某路径时压根不会创建,导致训练个半天,结果保存不了挂了(linux下),建议: train.py: if not os.path.exists('exp/exp%s' % args.dataset): os.mkdir('exp/exp%s' % args.dataset) -->os.makedirs('exp/exp_%s' % args.dataset) 2)在公平的K-fold交叉验证时,数据集的划分应该固定,随机划分就不太公平了。建议: dataset_acdc.py: class CMRDataset(Dataset): def init.... random.Random(seed).shuffle(img_name_list) 应该注释掉 3)重新加载已有模型时,加载路径可以这样动态生成: def init_network(args, model_i):# 加了一个model_i参数,传入的是当前的K-Fold值 net = get_model(args, pretrain=args.pretrain)

if args.load:  #
    model_path = '%s%s/%s/%d_best.pth' % (args.cp_path, args.dataset, args.unique_name, model_i)
    net.load_state_dict(torch.load(model_path))
    print('Model loaded from {}'.format(model_path))

仅仅个人意见,仅供参考(这个框架写得挺不错的,我个人也非常不喜欢mmseg之类的框架,包装太复杂,在多配置文件下,都不太好调试,当然在工程上可能需要这样)

yhygao commented 2 years ago

非常感谢提出的意见,我会考虑在后续更新中改进。针对(2),这里面设置seed就是为了保证数据集的划分是固定的随机,也就是只要不同实验中seed一样,数据集的划分就是一致的。

我写这个框架也主要是面向researcher的。希望能够有一个公平的平台来对比各种模型在medical数据的性能,baseline solid了才能对比出方法的好坏。未来应该也不会像mmseg那样做很多工程优化,更多的可能是支持更多的数据集,像MSD那种。目前主要还是我一个人写,所以肯定有很多bug和考虑不周的地方。欢迎提出更多的建议。感谢!

675492062 commented 2 years ago

感谢回复: 代码写的挺好! 针对(2),确实这样,我没太看seed固定,这要针对每个模型的数据集上都一样的种子了。有些使用者不太注意的话,容易忽略掉这点。 至于公平,只有相对公平。人为可设置参数太多,不同模型不同规模都需要一些超参匹配,设定为一样也未必就是公平。消融实验可能是最公平的比较了吧。

675492062 commented 2 years ago

最后,期待作者继续改进,我使用过程中有什么意见也会提,能起到作用固然是好,不能的话就当做提问了。