qq_40180259 2023-06-29 10:22 采纳率: 0%
浏览 44

cuda:0 and cpu!问题解决

哪个大佬帮我看看这个错误,困扰我好长时间了(yolov7测试时test.py出现的错误)
Traceback (most recent call last):
File "/hy-tmp/test.py", line 319, in
test(opt.data,
File "/hy-tmp/test.py", line 88, in test
model(torch.zeros(1, 3, imgsz, imgsz).to(device).type_as(next(model.parameters()))) # run once
File "/usr/local/lib/python3.8/dist-packages/torch/nn/modules/module.py", line 1051, in _call_impl
return forward_call(*input, **kwargs)
File "/hy-tmp/utils/torch_utils.py", line 372, in forward
out = self.model(x)
File "/usr/local/lib/python3.8/dist-packages/torch/nn/modules/module.py", line 1051, in _call_impl
return forward_call(*input, **kwargs)
RuntimeError: The following operation failed in the TorchScript interpreter.
Traceback of TorchScript (most recent call last):
/hy-tmp/models/common.py(2060): forward
/usr/local/lib/python3.8/dist-packages/torch/nn/modules/module.py(1039): _slow_forward
/usr/local/lib/python3.8/dist-packages/torch/nn/modules/module.py(1051): _call_impl
/hy-tmp/models/common.py(2074): forward
/usr/local/lib/python3.8/dist-packages/torch/nn/modules/module.py(1039): _slow_forward
/usr/local/lib/python3.8/dist-packages/torch/nn/modules/module.py(1051): _call_impl
/hy-tmp/models/yolo.py(792): forward_once
/hy-tmp/models/yolo.py(766): forward
/usr/local/lib/python3.8/dist-packages/torch/nn/modules/module.py(1039): _slow_forward
/usr/local/lib/python3.8/dist-packages/torch/nn/modules/module.py(1051): _call_impl
/usr/local/lib/python3.8/dist-packages/torch/jit/_trace.py(952): trace_module
/usr/local/lib/python3.8/dist-packages/torch/jit/_trace.py(735): trace
/hy-tmp/utils/torch_utils.py(362): init
/hy-tmp/test.py(63): test
/hy-tmp/test.py(319):
RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!

  • 写回答

1条回答 默认 最新

  • 故事不长丨 2023-07-20 14:16
    关注

    引用GPT回答:根据提供的错误信息,看起来是由于存在不同设备(cuda:0和cpu)上的张量导致的错误。在PyTorch中,所有相关的张量必须放在同一设备上进行操作。

    首先,请确保您的代码中使用的所有张量都在相同的设备上,例如CPU或GPU。可以通过使用.to(device)将张量移动到指定设备。

    在您的代码中,特别关注以下部分:

    model(torch.zeros(1, 3, imgsz, imgsz).to(device).type_as(next(model.parameters()))) # run once
    

    请确保device变量是正确配置的,并且模型和输入张量都被移动到相应的设备。

    如果在实例化模型时没有提供device参数,则可能需要在模型实例化之前添加以下代码来指定设备:

    device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
    
    评论

报告相同问题?

问题事件

  • 请采纳用户回复 7月3日
  • 创建了问题 6月29日

悬赏问题

  • ¥15 前端传参时,后端接收不到参数
  • ¥15 这是有什么问题吗,我检查许可证了但是显示有呢
  • ¥15 机器学习预测遇到的目标函数问题
  • ¥15 python的EOFError该怎么解决?
  • ¥15 Fluent,液体进入旋转区域体积分数不连续
  • ¥15 java linux下将docx文件转pdf
  • ¥15 maven无法下载依赖包
  • ¥15 关于pycharm, Callable[[str],bool]作为方法参数使用时, lambda 类型不提示问题
  • ¥15 layui数据重载无效
  • ¥15 寻找了解qq家园纵横四海的程序猿。