注意
这篇在Ubuntu上的安装tensorflow
以及常见错误ImportError: libcudnn.Version: cannot open shared object file: No such file or director的处理
文章为2017年8月25日22:01:30所写,如果你看这篇文章的时间过于老旧,那这篇文章作用就不大了,可以参考一下。
安装环境
Ubuntu 16
python3
tensorflow 1.3.0
CUDA Toolkit 8.0
cuDNN 6.0
根据官网的提示完成安装步骤
https://www.tensorflow.org/install/install_linux
需要Ubuntu 14.04 or higher
TensorFlow分两种,一种为cpu support only,一种为GPU support。
即为只支持cpu运算版本和支持GPU运算的版本。
在这里我们选择安装支持GPU运算的版本。
第一步 安装GPU驱动。
点击 System Setting -> Software&Updates -> Additional Drivers -> NVIDIA Corporation 选择第一个Using NVIDIA binary dirver
然后点击Apply Changes,保存更改。
等待下载安装GPU驱动完毕。
第二步 安装CUDA® Toolkit 8.0。
打开cuda的下载页面
https://developer.nvidia.com/cuda-downloads
点击 Linux -> x86_64 -> Ububtu -> 16.04 -> deb(local) -> Base Installer(1.9GB)
Downloads文件件下右键 打开terminal。
使用以下命令行下载并安装。
sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
第三步 安装cuDNN
打开cuDNN的下载界面
https://developer.nvidia.com/rdp/form/cudnn-download-survey
注意这里必须要注册并登陆才可以下载安装
在填完一个调查问卷并同意协议之后
选择 Download cuDNN v7.0 (August 3,2017),for CUDA 9.0 RC
下载 cuDNN v7.0 Library for Linux
之后打开 Download文件夹 对 cuDNN v7.0 Library 右键点击 Extract Here 解压缩到当前文件夹下。
这时候就在当前Download文件夹下出现一个cuda的文件夹。
注意,下面是这一步的重点,有时候顺序位置错了会很麻烦。
在打开一个终端terminal,输入sudo nautilus,在弹出来的文件夹管理器中 点击Computer -> user -> local -> cuda ->include
这个时候在之前打开的文件夹管理器中的Download文件夹 点击 cuda -> include
将Download文件夹中的cuda的include的cudnn.h文件复制粘贴到 Computer -> user -> local -> cuda ->include 文件夹下
同理将Download文件夹中的cuda的lib64下的四个文件复制粘贴到 Computer -> user -> local -> cuda ->lib64 文件夹下
在Download文件夹下打开一个终端terminal,输入以下命令行。
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
cd ..
sudo gedit ~/.bashrc
export PATH=/usr/local/cuda-8.0/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:${LD_LIBRARY_PATH}
然后在终端terminal中执行
source ~/.bashrc
第四步 安装pip,原生安装tensorflow
在终端terminal中执行以下命令行
sudo apt-get install python3-pip python3-dev
pip3 install tensorflow-gpu
sudo pip3 install --upgrade tfBinaryURL
sudo pip3 install --upgrade \
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.3.0-cp34-cp34m-linux_x86_64.whl
第五步 测试安装结果
python3
import tensorflow as tf
然后就会出错!!
ImportError: libcudnn.Version: cannot open shared object file: No such file or director
中间的libcudnn.Version有的是libcudnn.5,有的是libcudnn.6。
这里是最经常出现的问题。
https://stackoverflow.com/questions/41991101/importerror-libcudnn-when-running-a-tensorflow-program
答案在以上的网址当中,大概的意思就是现在tensorflow只能用cudnn6.0,5.1,这两个版本,别的都不能用。
所以去cudnn重新下载6.0版本,然后在Download文件夹中打开终端terminal。
tar xvzf cudnn-8.0-linux-x64-v6.0.tgz
sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
sudo gedit ~/.bashrc
把之前最后添加的改为
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda
保存关闭
source ~/.bashrc
测试结果
python3
import tensorflow as tf
成功。