apex安装过程:
安装介绍
apex的安装步骤很简单,两步:
1、下载包(也可以直接进https://github.com/NVIDIA/apex手动下载到本地);
git clone https://github.com/NVIDIA/apex
2、安装包;
cd apex
python setup.py install
//这条命令的成功率比较高,有时运行其他的安装命令会出错
报错
安装步骤简单但是过程中可能会出错。
以下报错可能在安装其他包时也会遇到,解决方法基本通用。
错误1:ImportError: cannot import name ‘packaging’ from ‘pkg_resources’
无法导入'packaging'包,可以做以下尝试:
1)安装packaging;
pip install packaging
可以用 “pip list” 查看安装的包,检查一下有没有packaging。
2)如果安装了packaging还是报错无法导入,试着在_in_process.py文件里添加系统路径;
顺序执行下述步骤(也可以Ctrl直接跳转到_in_process.py文件里修改):
vim /home/usr4/anaconda3/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py #_in_process.py的文件路径可以在报错信息里找
sys.path.append('/home/usr4/anaconda3/lib/python3.8/site-packages') #把该行添加到_in_process.py文件里
:wq #把文件保存退出
3)若还不能解决,可以尝试指定setuptools版本;
pip install setuptools==69.5.1
错误2:TypeError: unsupported operand type(s) for +: ‘NoneType’ and ‘str’
这个错误的原因很多,极有可能是cuda或者cudnn未正确安装,或者版本不对(我就是这个原因)。做以下尝试:
1)首先要确认是否安装了cuda和cudnn:
#查看cuda版本
nvidia-smi
nvcc -V
#或者python验证cuda
python
import torch
print(torch.__version__) #torch版本
print(torch.version.cuda) #cuda版本
print(torch.cuda.is_available()) #验证cuda
注意:CUDA有runtime api 和 driver api,两者都有对应的CUDA版本, nvcc --version 显示的就是前者对应的CUDA版本,而 nvidia-smi显示的是后者对应的CUDA版本。gpu中最好保证这两个版本一致,防止产生某些冲突。
#验证cudnn
python
from torch.backends import cudnn
print(cudnn.is_available()) #返回True说明已经安装了cuDNN
2)我的 cudnn.is_available() 返回了false,需要安装cudnn,步骤如下:
先在地址https://developer.nvidia.com/rdp/cudnn-archive中下载符合自己cuda版本的cudnn到本地;
解压后执行下述步骤安装(实际上就是将下载好的cudnn的头文件复制到CUDA的头文件目录里面去、把cuDNN的库复制到CUDA的库目录里面去):
# 复制cudnn头文件
sudo cp cudnn/include/* /usr/local/cuda-11.3/include/
# 复制cudnn的库
sudo cp cudnn/lib64/* /usr/local/cuda-11.3/lib64/
# 添加可执行权限
sudo chmod +x /usr/local/cuda-11.3/include/cudnn.h
sudo chmod +x /usr/local/cuda-11.3/lib64/libcudnn*
注意,这里的 cudnn/include/* 要替换为自己实际下载的cudnn头文件目录,cudnn/lib64/* 同理;
目标cuda路径选择自己正在运行的环境,可以 “ls /usr/local” 查看自己有哪些可选路径。
3)cuda和cudnn都安装好后,如果还是不能成功执行 “python setup.py install ”,可能是torch版本和cuda版本不兼容。
以下是Pytorch和CUDA对应的版本
我的CUDA版本是11.3,torch是2.3.1。当我把torch版本更新为1.11.0,就能成功安装apex了。
4)还可以尝试:
export TORCH_CUDA_ARCH_LIST="compute capability"
conda install -c nvidia cuda-nvcc
最后成功安装的界面如下