哪个大佬帮我看看这个错误,困扰我好长时间了(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!
cuda:0 and cpu!问题解决
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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')
解决 无用评论 打赏 举报
悬赏问题
- ¥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家园纵横四海的程序猿。