import apex出错,apex标红解决办法

运行一个pytorch时发现import apex标红,同时通过阿里云,清华源都无法下载,解决办法如下:
apex是英伟达开源的,支持PyTorch框架,通过改变数据格式来减小模型显存占用的工具。其中最有价值的是amp(Automatic Mixed Precision),将模型的大部分操作都用Float16数据类型来测试,一些特别操作仍然使用Float32。并且用户仅仅通过三行代码即可完美地将自己的训练代码迁移到该模型。实验证明,使用Float16作为大部分操作的数据类型,并没有降低参数,在一些实验中,反而由于可能增大Batch size,带来精度上的提高,以及训练速度上的提升。
作用:提升GPU上训练速度
github下的网址为https://github.com/NVIDIA/apex,可以通过直接下载压缩包到自己的site-package文件夹下并解压,也可以通过命令行进行安装:
Linux下安装:前提已经安装了CUDNN和CUDA
为了性能和完整的功能,建议通过CUDA和c++扩展来安装Apex
clone之前现将地址cd到 /site-packages文件夹下,然后在site-packages文件夹下打开终端,执行以下命令

$ git clone https://github.com/NVIDIA/apex
$ cd apex
$ pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./
 
Apex 同样支持 Python-only build (required with Pytorch 0.4) via
 
$ pip install -v --no-cache-dir ./

如果第三步出错,基本都是因为CUDA与Pytorch版本不匹配,查看CUDA版本信息:

(venv) ponder@ponder:~/ponder/24-pycharm/cmx_project/reid/MGN-pytorch-master/venv/lib/python3.5/site-packages/apex$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130

查看torch版本

(venv) ponder@ponder:~/ponder/24-pycharm/cmx_project/reid/MGN-pytorch-master/venv/lib/python3.5/site-packages/apex$ python
Python 3.5.2 (default, Apr 16 2020, 17:47:17) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.__version__
'1.0.0'

查看当前torch版本对应的CUDA版本:

>>> torch.version.cuda
'9.0.176'
Traceback (most recent call last):
  File "/home/ponder/ponder/24-pycharm/cmx_project/reid/MGN-pytorch-master/venv/lib/python3.5/site-packages/pip/_internal/utils/outdated.py", line 90, in pip_version_check
    state = SelfCheckState(cache_dir=options.cache_dir)
  File "/home/ponder/ponder/24-pycharm/cmx_project/reid/MGN-pytorch-master/venv/lib/python3.5/site-packages/pip/_internal/utils/outdated.py", line 25, in __init__
    self.statefile_path = os.path.join(cache_dir, "selfcheck.json")
  File "/usr/lib/python3.5/posixpath.py", line 89, in join
    genericpath._check_arg_types('join', a, *p)
  File "/usr/lib/python3.5/genericpath.py", line 143, in _check_arg_types
    (funcname, s.__class__.__name__)) from None
TypeError: join() argument must be str or bytes, not 'bool'

Windows下安装:
运行python setup.py install之前要先安装torch
这里有必要说一下配置pip安装包的镜像源,我们可以通过镜像源安装我们想要的东西,国内常用的镜像源有

http://pypi.douban.com/simple/ 豆瓣
http://mirrors.aliyun.com/pypi/simple/ 阿里
http://pypi.hustunique.com/simple/ 华中理工大学
http://pypi.sdutlinux.org/simple/ 山东理工大学
http://pypi.mirrors.ustc.edu.cn/simple/ 中国科学技术大学
https://pypi.tuna.tsinghua.edu.cn/simple 清华

我是经常用阿里云的(快)
临时安装时可以直接在命令行中标明,例如安装tensorflow时:

pip install tensorflow==2.0.0 -i https://mirrors.aliyun.com/pypi/simple/

如果地址不被信任可以加上–trusted-host mirrors.aliyun.com

pip install tensorflow==2.0.0 -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.pypi.com

-i表示指定下载源地址,–trusted-host表示指定需要受信任的镜像源
如果觉得每次输入镜像源麻烦,想要永久使用固定镜像源,可以采用以下方法进行设置:
1、因为有时不同的位置需要用到多个pip文件,对所有的pip指令镜像源做更改:
找到C:\Users\用户名\AppData\Roaming\
再该文件夹下新建一个pip文件,在该pip文件夹下新建pip.ini文件,文件内写入:
[global]
index-url=http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
保存文件即可。
2、对指定的pip指令设定镜像源:
找到需要进行设定的pip文件夹,在文件夹中创建pip.ini文件,同样写入
[global]
index-url=http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
保存即可。
不显示文件扩展名者在 此电脑>查看> 文件扩展名处打对勾。
Linux系统下配置需要在$home/.config/pip/pip.conf 的pip.conf配置文件中,修改当中的index-url到指定镜像源。
下载完apex后需要装依赖包,解压后打开apex-master文件夹会看到:
在这里插入图片描述
找到requirements.txt打开,显示的是需要安装的依赖包,自查,因人而异。到site-packages文件夹下
在这里插入图片描述
安装完所有依赖后,打开cmd,进入到刚刚下载完的apex-master路径下,运行:

python setup.py install

最后显示finished…apex==0.1,则安装成功。
测试一下:

F:\>python
Python 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import apex
>>>

安装成功。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐