修改SSD目标检测模型,训练时报错“AssertionError: Not compiled with data parallel”
Created by: XDUXK
【版本环境信息】:paddle版本1.6,环境Mac OS 10.14,python版本3.7.0 【模型名称】:SSD模型(原型在https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/ssd) 【数据集】:没做修改,也是SSD模型的数据集 【问题描述】: 我有一个需求,其需要用到目标检测模型ssd,但是其尚无法支持py_reader并且只支持SGD优化器,所以,我将SSD的原有模型(https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/ssd) 进行了修改,主要修改点为: 1. 在trainer.py中,将优化器改为SGD 2. 在trainer.py中,将py_reader改为使用普通reader,然后在exe.run里面进行feed 3. 由于paddle1.6之后,fluid.layers.data接口发生了改变(似乎是建议不再使用),加上上述2中所述修改,所以在mobilenet_ssd.py中,添加了fluid.data接口定义的变量(用法参考了1.6下multi_box_head的API代码示例)
我按照原有SSD模型的训练命令“python -u train.py --batch_size=64 --dataset=pascalvoc --pretrained_model=pretrained/ssd_mobilenet_v1_coco/”开始训练,结果报错“AssertionError: Not compiled with data parallel”。不知道是哪里出了问题啊?
已将改动的代码文件放在了附件ssd_revised_code.zip内: ssd_revised_code.zip