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 软件包(包括pip 和conda )是分开的,例如: 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 目前只支持 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):
- 安装pip 软件包管理器和 venv:
- 创建虚拟环境
- 安装 TensorFlow pip 软件包
这部分的命令可以直接在链接教程里面看到,这种通过python3-venv 管理虚拟环境的方式没有conda 用得多。
1.2 pip和conda组合安装(推荐)
访问官方pip安装教程:https://tensorflow.google.cn/install/pip,语言选择 English,就可以看到下图pip和conda组合安装的方法: 上图中官方给的方法如下:
- 用
conda 去安装对应版本 cudatoolkit 和 cudnn(这一步可以参考 2.1节 先配置清华镜像源再去执行); - 配置环境变量,让系统可以看到你的 cuda lib库在什么地方;
- 使用
pip 去安装tensorflow。
下面是官方提供的完整安装命令(假设你已经安装好了Anaconda以及合适版本的英伟达驱动,以安装tensorflow==1.15 为例):
conda create --name tf1.15 python=3.7
conda activate tf1.15
conda install -c conda-forge cudatoolkit=10.0 cudnn=7.4
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/
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
pip install --upgrade pip
pip install tensorflow-gpu==1.15
python3 -c "import tensorflow as tf; print(tf.test.is_gpu_available())"
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/ 安装步骤说明:
- 创建一个确定版本的python conda env;
- activate创建的虚拟环境;
- conda安装 tensorflow、cudatoolkit 和 cudnn。
完整命令如下:
conda create --name tf1.15 python=3.7
conda activate tf1.15
conda install tensorflow-gpu=1.15.0 cudatoolkit=10.0 cudnn=7.4
python3 -c "import tensorflow as tf; print(tf.test.is_gpu_available())"
安装成功的结果图:
3. Reference
|