PaddleSeg
PaddleSeg copied to clipboard
[MedicalSeg] Fix MedicalSeg TIPC bugs
主要改动
重写了MedicalSeg部分的TIPC脚本,解决先前存在的如${model_name}
提取行号不正确、大量配置文件选项被绕过且未给出任何警告、inference部分不记录执行状态等问题。
目前MedicalSeg部分的TIPC脚本与PaddleSeg主仓库TIPC脚本(只比较基础训推链条)存在的主要区别如下:
- MedicalSeg的TIPC脚本不包含
parse_extra_args()
功能; - MedicalSeg的TIPC脚本不支持AMP训练,因此配置文件中指定的
--precision
选项会被绕过,并给出一条警告; - 模型导出和推理使用的是
best_model/
子目录下的模型,而不是最后一次迭代对应的模型; - UNETR模型在训练时只使用单卡,推理时不使用CPU,也不启用MKL-DNN。
其中第2、3、4条是为了使修改后的脚本与修改前执行效果一致;第1条则是考虑到目前MedicalSeg的TIPC脚本还无需添加parse_extra_args()
这样较为复杂的功能。
其它改动
修复了MedicalSeg中一部分脚本存在的格式问题。
待解决问题
在调试中发现UNETR的TIPC部分存在如下问题:
- 验证时需要的内存太大,动态图跑eval的话1块16G的V100也不够用;
- 无法支持MKL-DNN,若强行启用会报卷积输入形状错误。
训练、评估、导出、推理截图分别如下: