本文将展示如何在 debian 下安装 CPU/GPU 版本的 tensorflow1.12.0
本文使用的基本环境:deepin15.9(基于debian8)、python3.6、pip9
直接使用 pip 进行安装即可:
pip install tensorflow
# 可使用 ‘==1.x.x’ 指定版本。[eg.] pip install tensorflow==1.6
本文依据的机器环境如下:
显卡:NVIDIA GFX150
显卡驱动版本:390.67
gcc 版本:7.3.0注意:截止本文,安装 GPU 版本的 tensorflow 需要 NVIDIA 的显卡支持,因此
接下来的操作都是在显卡驱动正确安装的基础之上的。(使用 deepin 的用户使用 deepin 的
显卡驱动管理器进行切换即可。其次在安装 cuda 时有安装驱动的选项,由于本人已经安装好了
NVIDIA 的闭源驱动因此并未勾选,没有安装驱动的读者不妨一试)
pip install tensorflow-gpu
在终端下的 python 环境中(或新建一个 py 文件点击运行):
import tensorflow as tf
接下来将会报错,会提示你缺少库文件(由于我们没有安装 cuda):
ImportError: libcublas.so.9.0: cannot open shared object file
以上代码即表明 cuda9.0 未安装成功。不同的 tensorflow 版本对应的 cuda 不同因此报错所需的 libcublas.so
库文件版本也不同。
大多数教程都是先安装 cuda 在安装 tensorflow,但由于tensorflow、cuda、cudnn这三者之间的版本依赖非常严格,因此存在这样一个问题,即教程书写者的配置、操作是正确的(如果不指定版本,pip 将默认安装最新版本的库,由此导致版本不同),对于阅读者来说可能就不正确了。事实上本人就踩了这个坑,安装了 2 次 cuda 才安装成功。因此本文先安装 tensorflow,安装完成之后运行 tensorflow,缺什么补什么。
下载:
传送门:https://developer.nvidia.com/cuda-downloads
上述页面中直接提供下载的是 cuda 的最新版本,需要其他版本的读者移步:
https://developer.nvidia.com/cuda-toolkit-archive
选择目标平台(根据自身平台选择),本文所使用的 cuda 平台选择如下:
https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1704&target_type=runfilelocal
Linux -> x86_64 -> Ubuntu -> 17.02 -> runfile(local)
安装:
(在终端中进入下载目录,本文下载目录为 ~/Downloads/)
sudo sh cuda_9.2.148_396.37_linux.run # cuda_9.2.148_396.37_linux 是你下载的版本
之后会有一系列选择(安装位置、是否创建 samples 、是否安装显卡驱动等)根据自身需要选择,
本文除了安装 NVIDIA 显卡一项选择 n 外其余都选择 y 或默认。
环境变量:
需要将以下三个目录添加到环境变量:
① PATH 中添加:/usr/local/cuda/bin
② 添加变量:LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64
验证安装是否成功,在终端中输入:
nvcc -V
如果显示版本号即安装成功。(本文版本号:release 9.0, V9.0.176)
任何修改环境变量不在赘述。
cuDDN 的安装非常简单:下载对应版本后解压、设置环境变量即可。(下载 cuDDN 需要注册 NVIDIA 账号)
传送门:https://developer.nvidia.com/cudnn
注意: 切记选择你对应的 cuda 版本的 cuDDN。
(本文:Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 9.2)
下载完成后将之解压到任意目录(推荐 /opt)。
环境变量
① 追加变量:LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:/opt/cuda/lib64
至此安转完毕,用一个简单的例子检验是否安装成功:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
GPU 版本的 tensorflow 安装完成后会默认导入 GPU 版,可能出现以下错误:
警告:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
这是因为你使用了 GPU 版本的缘故,忽略即可。