在 linux 下使用 pip 安装 tensorlfow 的时候(官方教程:https://www.tensorflow.org/install/pip), 如果 cuda 的版本不被 tensorflow 支持,安装不会报错,依然会成功。但是实际无法运行程序,利用官方的测试代码检查:
$ python -c "import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))"
便会出现 import error 的错误。
存在使用 源码编译的教程(https://www.tensorflow.org/install/source),可以选择 cuda 版本(例如10.0),但是 过程比较繁琐,消耗时间高达3-4小时。因此我选择改变 cuda 的默认环境变量,非常简单,只需要两行代码,然后轻松使用 pip 安装。
我在 linux 系统下 同时安装了多个版本的 cuda,默认的环境变量指向最新的 cuda 目录(10.0).
在安装 tensorflow 的时候,由于 tensorflow 最高支持 cuda-9.0,需要将莫仍环境变量指向 cuda-9.0 对应的目录。
tensorflow 的安装涉及两个 变量:LD_LIBRARY_PATH 以及 CUDA_HOME.
首先检查环境变量列表:
$ export -p
得到环境列表的输出,如果没有两个变量,使用 declare 新建:
$ declare -x LD_LIBRARY_PATH="<MY_CUDA_DIRECTORY>/lib64:<MY_CUDA_DIRECTORY>/extras/CUPTI/lib64"
$ declare -x CUDA_HOME=<MY_CUDA_DIRECTORY>
如果变量已经存在,使用 export 修改变量到正确的目录(如上):
export <VARIABLE>="$<VARIABLE>:<MY_TARGET_DIRECTORY>"
然后安装即可成功。
Bingo!
另:
安装 anaconda 之后,运行 conda 可能出现 command not found,需要首先将之添加进系统环境变量中。
$ bash
$ export PATH="<MY_CONDA_DIRECTORY>/bin:$PATH