错误信息是定位问题的核心线索,需仔细阅读完整报错内容。常见错误类型包括:
ImportError: No module named 'torch'
):通常因PyTorch未正确安装或虚拟环境未激活;RuntimeError: CUDA error: no kernel image is available for execution on the device
):多为CUDA版本与PyTorch不匹配、驱动问题或环境变量未配置;ImportError: libcudart.so.10.0: cannot open shared object file
):因系统库版本与PyTorch要求不符。PyTorch对Python版本有明确要求(通常支持Python 3.6-3.9,部分新版本扩展至3.10+)。通过以下命令确认Python版本:
python3 --version
若版本不兼容,需升级/降级Python(如使用pyenv
管理多版本),或在虚拟环境中指定兼容版本(如conda create -n pytorch_env python=3.8
)。
避免系统级Python包冲突,推荐使用venv(Python内置)或conda(Anaconda)创建虚拟环境:
python3 -m venv pytorch_env # 创建环境
source pytorch_env/bin/activate # 激活环境(Linux/macOS)
conda create -n pytorch_env python=3.8 # 创建环境
conda activate pytorch_env # 激活环境
激活环境后,再安装PyTorch。
根据是否使用GPU,选择对应安装命令:
pip install torch torchvision torchaudio
nvcc --version
),再前往PyTorch官网选择匹配的安装命令。例如,CUDA 11.7版本:pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
注:若未安装CUDA,需先完成CUDA Toolkit和cuDNN的安装(详见下文)。
若使用GPU加速,需安装CUDA Toolkit(NVIDIA GPU驱动层)和cuDNN(深度学习加速库):
wget https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-11.4.2-1.x86_64.rpm
sudo yum localinstall cuda-repo-rhel7-11.4.2-1.x86_64.rpm
sudo yum clean all
sudo yum install -y cuda
tar -xzvf cudnn-11.4-linux-x64-v8.2.2.26.tgz
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
~/.bashrc
,添加以下内容:export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
生效配置:source ~/.bashrc
nvcc --version # 查看CUDA版本
nvidia-smi # 查看GPU状态
错误1:ImportError: No module named 'torch'
原因:PyTorch未安装或虚拟环境未激活。
解决:激活虚拟环境后,重新安装PyTorch(pip install torch torchvision torchaudio
)。
错误2:RuntimeError: CUDA error: no kernel image is available for execution on the device
原因:CUDA版本与PyTorch版本不匹配,或GPU架构(如Compute Capability)不被支持。
解决:
nvidia-smi
显示的“Compute Capability”),选择支持该架构的PyTorch版本(如Compute Capability 7.5及以上支持CUDA 11.7)。错误3:ImportError: libcudnn.so.8: cannot open shared object file
原因:cuDNN库未正确安装或环境变量未配置。
解决:
ls /usr/local/cuda/lib64/libcudnn*
);LD_LIBRARY_PATH
是否包含/usr/local/cuda/lib64
(echo $LD_LIBRARY_PATH
);source ~/.bashrc
)。CentOS系统及依赖包过时可能导致兼容性问题,需定期更新:
sudo yum update -y # 更新系统
sudo yum install -y epel-release # 启用EPEL仓库(可选,提供额外依赖)
若安装过程中提示依赖缺失,可通过yum
安装(如sudo yum install -y python3-devel numpy
)。
若以上步骤无法解决问题,可通过以下途径获取帮助: