0. Forward

由于 pytorch 的动态计算图具有灵活、易于调试等优点,已经在学术界广泛应用。另一方面 tensorflow1.x 版本只支持静态图,语法累赘不易于调试,在学术界的热度逐渐被pytorch取代。Google见此不妙,所以跟随潮流让 tensorflow 也能够支持动态图机制,tensorflow2.x 应运而生,但是TF1和TF2差别实在有点大,就像两个框架一样,代码迁移需要一定的工作量。可能大家懒得迁移代码,现在TF1的代码还是比较多的,所以安装TF1还是有必要的。

【说明】:该文章不提供安装Nvidia driver、cuda以及cudnn的指导。所有安装的前提是已经正确安装了显卡驱动(Nvidia driver)。赶时间的可以直接去看第【0.3.1节】和【2节】。

0.1 TF1和TF2软件包区别

1.在官方安装教程只给了 TF2 的安装示例,并且怎么也找不到 TF1 的官方安装说明,所以安装TF1难度更大。
2. Google已经不会再去维护 TF1 版本了,TF2 还会继续更新。
3. TF1 版本 CPU 和 GPU 软件包是分开的,TF2分情况而定,参考0.2节

0.2 pip和conda安装区别

这个是tensorflow安装的官方教程:https://tensorflow.google.cn/install 。语言推荐选择为English,英文的教程可能会比中文详细一些。官方教程直接推荐大家使用pip 去安装tensorflow软件包,在官方中文教程(参见1.1节)里面给出了详细步骤,因为pip软件包支持的 TF 版本更多一些,是唯一官方发行的地方

  • 对于 TensorFlow 1.x,CPU 和 GPU 软件包(包括pipconda)是分开的,例如:
    tensorflow==1.15:仅支持 CPU 的版本
    tensorflow-gpu==1.15:支持 GPU 的版本(适用于 Ubuntu 和 Windows)
    注意:tensorflow1.15 是TensorFlow 1.x 的最终版本。

  • TensorFlow 2 的情况稍微有点复杂:

    • 对于pip软件包:tensorflow 是 当前稳定版本,同时支持 CPU 和 GPU。
    • 对于conda软件包:
      tensorflow:当前稳定的 CPU 版本
      tensorflow-gpu:当前稳定的 GPU 版本

    conda 目前所支持的TensorFlow 软件包可以参考这个网址:https://anaconda.org/anaconda/tensorflow/files
    conda_package
    可以从上图看到,conda 目前只支持 TF 版本为:1.12.0~2.6.0,而目前最新的版本为2.9.0(截止到该博客发表时间),可以通过 pip 的方式安装。

    注意:安装时不指定具体版本,默认就是当前最新2.x版本。

0.3 版本对应关系

0.3.1 TF 和cuda以及python版本对应关系

参考网址:https://tensorflow.google.cn/install/source#gpu
对应关系如下:
在这里插入图片描述

0.3.2 cuda和Nvidia driver对应关系

参考网址:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
在这里插入图片描述

1. pip install

TF官网 安装教程推荐语言选择 English,因为存在英文界面更新了,而中文的还没有同步。针对官网提供的中文和英文教程存在的差异,这里分为两种说明。

1.1 纯pip安装

访问官网pip中文安装教程:https://tensorflow.google.cn/install/pip?hl=zh-cn
安装步骤如下(假定你已经安装了合适版本的python3):

  1. 安装pip 软件包管理器和 venv:
  2. 创建虚拟环境
  3. 安装 TensorFlow pip 软件包

这部分的命令可以直接在链接教程里面看到,这种通过python3-venv管理虚拟环境的方式没有conda用得多。

1.2 pip和conda组合安装(推荐)

访问官方pip安装教程:https://tensorflow.google.cn/install/pip,语言选择 English,就可以看到下图pip和conda组合安装的方法:
在这里插入图片描述
上图中官方给的方法如下:

  1. conda去安装对应版本 cudatoolkit 和 cudnn(这一步可以参考 2.1节 先配置清华镜像源再去执行);
  2. 配置环境变量,让系统可以看到你的 cuda lib库在什么地方;
  3. 使用pip去安装tensorflow。

下面是官方提供的完整安装命令(假设你已经安装好了Anaconda以及合适版本的英伟达驱动,以安装tensorflow==1.15 为例):

# 1. create tf1.15 env with specified python
conda create --name tf1.15 python=3.7

# 2. activate it
conda activate tf1.15

# 3.  install the correct CUDA, cuDNN with conda. Using Tsinghua mirrors could not add `-c conda-forge` option.
conda install -c conda-forge cudatoolkit=10.0 cudnn=7.4

# 4. configure the system paths in current terminal temporarily
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/
# or automatically configure paths eveytime you activate this conda env by following alternative
mkdir -p $CONDA_PREFIX/etc/conda/activate.d
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/' > $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh

# 5. install tensorflow
pip install --upgrade pip # Be sure you're running the latest pip
pip install tensorflow-gpu==1.15 # install TensorFlow with pip

# 6. Verify the GPU setup
python3 -c "import tensorflow as tf; print(tf.test.is_gpu_available())"
# if print 'True', you've installed tensorflow-gpu suscessfully. 

2. conda install

2.1 conda 配置 Tsinghua镜像

首先使用命令conda config --show-sources 或者 conda config --show channels 显示本地使用的channels,我配置的镜像源如下:
在这里插入图片描述
为了排除不同的conda镜像源导致安装失败的可能性,这里要求先配置清华的镜像源。
参考官方教程https://mirror.tuna.tsinghua.edu.cn/help/anaconda/
Linux系统可以通过修改用户目录下的 .condarc 文件,将下面的代码复制粘贴到~/.condarc里面,保存后运行 conda clean -i 清除索引缓存,保证用的是镜像站提供的索引。

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

2.2 conda 安装 tensorflow1.15 步骤

Anaconda官方文档里面给出了TensorFlow安装教程,参考网址:https://docs.anaconda.com/anaconda/user-guide/tasks/tensorflow/
安装步骤说明:

  1. 创建一个确定版本的python conda env;
  2. activate创建的虚拟环境;
  3. conda安装 tensorflow、cudatoolkit 和 cudnn。

完整命令如下:

# 1. create tf1.15 virtual env with python=3.7
conda create --name tf1.15 python=3.7

# 2. activate it
conda activate tf1.15

# 3. install tensorflow, cuda and cudnn with Tsinghua mirriors.
conda install tensorflow-gpu=1.15.0 cudatoolkit=10.0 cudnn=7.4

# 4. verify the gpu setup
python3 -c "import tensorflow as tf; print(tf.test.is_gpu_available())"
# if print 'True', you've installed tensorflow-gpu suscessfully. 

安装成功的结果图:
在这里插入图片描述

3. Reference

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐