最近在使用u版yolov3训练数据集时,使用多GPU训练时总是报错:
TypeError: Caught TypeError in replica 1 on device 1.
TypeError: forward() missing 1 required positional argument: 'x'
百度了一下发现是因为我使用了多个显卡,导致在inference阶段,模型和数据不在同一个显卡上,所以后面同时报了:
TypeError: forward() missing 1 required positional argument: 'x'
没有数据的错误。
详情参考这篇文章:https://www.cnblogs.com/YouXiangLiThon/p/13361448.html
但百度上面没有查询到解决办法,于是去github上试试有没有相同的问题。结果发现真的有人出现了同样问题,大佬的回答是因为自己的数据集数量不是 batch-size 的整数倍,因此会报错。参考https://github.com/ultralytics/yolov3/issues/1355
于是查看自己的数据集,真的是这个问题,问题解决!