RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available()

今天在调试yolov7时遇到由题所示报错。

Traceback (most recent call last):
  File "d:/1/yolov7-main/train.py", line 609, in <module>
    train(hyp, opt, device, tb_writer)
  File "d:/1/yolov7-main/train.py", line 71, in train
    run_id = torch.load(weights).get('wandb_id') if weights.endswith('.pt') and os.path.isfile(weights) else None
  File "D:\1\envs\yolov7.2\lib\site-packages\torch\serialization.py", line 592, in load
    return _load(opened_zipfile, map_location, pickle_module, **pickle_load_args)
  File "D:\1\envs\yolov7.2\lib\site-packages\torch\serialization.py", line 851, in _load
    result = unpickler.load()
  File "D:\1\envs\yolov7.2\lib\site-packages\torch\serialization.py", line 843, in persistent_load
    load_tensor(data_type, size, key, _maybe_decode_ascii(location))
  File "D:\1\envs\yolov7.2\lib\site-packages\torch\serialization.py", line 832, in load_tensor
    loaded_storages[key] = restore_location(storage, location)
  File "D:\1\envs\yolov7.2\lib\site-packages\torch\serialization.py", line 175, in default_restore_location
    result = fn(storage, location)
  File "D:\1\envs\yolov7.2\lib\site-packages\torch\serialization.py", line 151, in _cuda_deserialize
    device = validate_cuda_device(location)
  File "D:\1\envs\yolov7.2\lib\site-packages\torch\serialization.py", line 135, in validate_cuda_device
    raise RuntimeError('Attempting to deserialize object on a CUDA '
RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location=torch.device('cpu') to map your storages to the CPU.

错误原因应该时cuda版本与显卡驱动不一致。

conda list CUDA

根据上述代码可以查看CUDA版本号

  根据上表可以看到10.2.89所对应的显卡驱动需要>=441.22

 在设备管理器中查看当前显卡驱动低于该版本,因此直接上NVIDIA官网下载驱动文件进行更新。

官方驱动 | NVIDIA

 选择相应版本下载安装即可。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值