出错原因
_cuda_setdevice这个函数是用来设置GPU设备的,以便在训练过程中更高效地利用硬件资源。使用这个函数之前,我们需要确保PyTorch已经安装了CUDA库。
attributeerror: module ‘torch._c’ has no attribute ‘_cuda_setdevice’ 这个错误提示表明:使用Pytorch的_c模块时,无法找到相应的_cuda_setdevice函数。
这通常意味着:你使用的 Pytorch 版本中不存在这个特定的底层C API(即CUDA版本问题),或者你可能错误地使用了Pytorch的API(调用错误)。
解决方案
先检查CUDA是否可用:
import torch
torch.cuda.is_available()
不可用的话大概率版本问题,CUDA版本和Pytorch版本不兼容(我的问题就出在这,CUDA版本是11.7,但是下载了支持12.1的Pytorch)
可以尝试以下解决方案:
1)统一CUDA和Pytorch的版本;
查看cuda版本
nvidia-smi
nvcc --version
查看torch版本
import torch
torch.__version__
查看是否有对应版本
https://pytorch.org/get-star