RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0

报错信息

调用YOLOv7的test.py进行测试时,遇到的报错:RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!

RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0_第1张图片

解决方案

  • Debug发现在test.py的如下位置出错。这行代码不知道是为了干啥,好像是为了生成追踪模型,但是对我没用,反而还造成测试时出错,因此直接将它注释掉了,注释掉之后就能正常测试出结果了
  • 尝试了其他权重的预测结果,精度map50等完全没有差异,所以放心注释掉吧
  • 但是好像会影响FPS,traced之后的模型FPS会快一点
  • 但是建议测试完之后,还是把下面两行代码重新打开,尽量保持源码的原貌,以免后续测试其他改进模型时出岔子
        if trace:
            model = TracedModel(model, device, imgsz)

你可能感兴趣的:(深度学习项目经验tips,YOLO,报错)