paddledection训练中hang住
Created by: Haijunlv
在使用paddledetecion训练时,因业务需要,将train.py里数据迭代模式改成了for-range的方法循环迭代, 即iterable=True 相应的做了一点点的代码上的适配,具体三处
place = fluid.cuda_places() exe = fluid.Executor(place[0]) inputs_def["iterable"] = True train_loader.start() 注释 outs = exe.run(compiled_train_prog, fetch_list=train_values, feed=data) 然后发现在for循环的第129805次执行exe.run()时程序会hang住。 这个问题稳定复现, 但模型训练的效果是Ok的,hang住后杀掉进程重新继续训练还是会在第129805次hang住。 此时gpu利用率100%
paddle版本是1.7.1post97, ppdet是release-0.4分支, commit id 21a6044。 训练采用8卡v100训练coco,用的是configs/autoaugment/faster_rcnn_r50_vd_fpn_aa_3x.yml 训练启动采用单进程启动方法。
paddledetection处issue地址: https://github.com/PaddlePaddle/PaddleDetection/issues/1170 debug进展:
- 将paddle版本换成1.8.3最新代码, 代码仍hang住
- 去除多进程,多线程影响, 在只迭代出一次的数据基础上,反复喂该数据129805次后,代码hang住
- 将模型中所有的conv2d中的use_cudnn=False, 重新训练,仍然hang住