yolov5项目cuda错误解决
CUDA报错解决
# 报错详情
AssertionError: CUDA unavailable, invalid device 0 requested
查看cuda版本
先看一下电脑是否支持GPU
,打开任务管理器就能查看(ctrl+shift+esc
)
# cmd命令
nvcc --version
# 如果上面命令不是内部或外部命令,也不是可运行的程序,就输入下面的命令
NVIDIA-smi
# 如果没有cuda的话,可以官网直接下载(下载有点慢,多等待一下)
全部版本:https://developer.nvidia.com/cuda-toolkit-archive(选择一个想要的版本点进去)
这里示例11.7.0:https://developer.nvidia.com/cuda-11-7-0-download-archive
torch三件套安装
pytorch
官网:https://pytorch.org/get-started/previous-versions/
找到指定的版本安装(最好是安装到虚拟环境中,Python安装虚拟环境:https://www.cnblogs.com/hkwJsxl/p/17211497.html)
# 先卸载之前的包
pip uninstall torch torchvision torchaudio
# CUDA 11.7
pip install torch==2.0.0+cu117 torchvision==0.15.1+cu117 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu117
因为是国外的网站,所以会慢一些,也可以多次下载失败,可以多尝试几次,或换一个时间段进行下载
Upsample报错解决
# 报错详情(我的项目是解决完上面的cuda报错后就出现了这个报错)
AttributeError: 'Upsample' object has no attribute 'recompute_scale_factor'
# 解决办法
点进去源码,把forward函数代码换成下面这一句
return F.interpolate(input, self.size, self.scale_factor, self.mode, self.align_corners)
_VF.meshgrid警告
D:\Virtualenvs\gesture_recognition\lib\site-packages\torch\functional.py:504: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at C:\actions-runner\_work\pytorch\pytorch\builder\windows\pytorch\aten\src\ATen\native\TensorShape.cpp:3484.)
return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined]
# 点进去源码,修改
# return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined]
# 改为
return _VF.meshgrid(tensors, **kwargs, indexing = "ij") # type: ignore[attr-defined]