ubuntu16.4搭建tensorflow环境

时间:2023-03-10 02:28:56
ubuntu16.4搭建tensorflow环境

1 说明:

  本机配置:显卡gtx970,ubuntu16.4.1+cuda8.0+cudnn v5+tensorflow0.11

1. 下载

1.1 系统镜像

由于我尝试了ubuntu14.04,安装Nvidia驱动之后,会出现循环登录的问题,并始终无法找到有效的解决途径,所以只能选择ubuntu16.04了。

镜像地址 https://www.ubuntu.com/download/alternative-downloads

1.2 CUDA 8.0

https://developer.nvidia.com/cuda-downloads(下载地址) 
说明: 
(1)在NVIDIA的CUDA下载页面下,选择要使用的CUDA版本进行下载。 
(2)我们这里使用CUDA8.0(页面有提示GTX1070、GTX1080支持8.0版本),学员如果没有使用以上两个版本的GPU,可以下载CUDA7.5。DOWNLOAD(下载)。 
(3)下载需要注册。 
(4)图解选择

注意:使用deb(local)版本。

1.3 cuDNN v5

下载地址: https://developer.nvidia.com/cudnn(需要登录) 
说明: 
(1)下载需要填写一个调查问卷,就三个选项,建议认真填写,毕竟人家免费给咱使用。 
(2)填写完毕点击 I Agree To 前面的小方框

选择cudnn v5.1 for linux

1.4 Tensorflow 0.11

tensorflow github上面提到 4 种安装方式,本教程使用 第四种 源码安装 
Virtualenv installation 
Anaconda installation 
Docker installation 
Installing from sources 
https://github.com/tensorflow/tensorflow(下载地址) 
说明: 我选择的是linux gpu python2

(2) 点击Python 2开始下载。

2. 安装ubuntu16.04 LTS 系统

详情请查看之前笔记windows系统安装ubuntu双系统

3. 安装NVIDIA驱动

打开terminal输入以下指令:

sudo apt-get update

然后在系统设置->软件更新->附加驱动->选择nvidia最新驱动(361)->应用更改

4.安装cuda8.0

4.1 gcc降版本

ubuntu的gcc编译器是5.4.0,然而cuda8.0不支持5.0以上的编译器,因此需要降级,把编译器版本降到4.9: 
在terminal中执行:

sudo apt-get install g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++
sudo update-alternatives --set c++ /usr/bin/g++

4.2 安装cuda

在cuda所在目录打开terminal依次输入以下指令:

cd  /home/***(自己的用户名)/Desktop/###(这个命令意思是找到刚刚我们用U盘传过来的文件)
sudo dpkg -i cuda-repo-ubuntu1604-8-0-rc_8.0.27-1_amd64​.deb
sudo apt-get update
sudo apt-get install cuda

4.3 安装cuDNN

打开terminal依次输入以下指令:

cd  /home/***(自己的用户名)/Desktop/                     #(这个命令意思是找到刚刚我们用U盘传过来的文件)
tar xvzf cudnn-8.0-linux-x64-v5.1-ga.tgz #(解压这个文件)
sudo cp cuda/include/cudnn.h /usr/local/cuda/include # (复制)
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 # (复制)
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

或者直接执行以下命令,就不需要复制

sudo tar -xvf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local 

4.4 安装其他依赖

4.4.1 配置环境变量

ubuntu16.4搭建tensorflow环境

按照上图的教程,在terminal中输入以下命令:
sudo gedit ~/.bash_profile #打开.bash_profile

然后在打开的文本末尾加入:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda

继续在terminal中输入:

source ~/.bash_profile #使更改的环境变量生效

当然,也有其他教程在文件~/.bashrc文件中写入的,方法与上面的类似。如果在后面配置./config文件出现问题时,可以实现这个方法。

4.4.2 配置环境变量

ubuntu16.4搭建tensorflow环境

在terminal中输入以下命令:

sudo apt-get install python-pip python-dev 

pip install --upgrade pip

5. 安装Bazel

方案一:

Using Bazel custom APT repository (recommended)

1. Install JDK 8

If you are running Ubuntu Wily (15.10), you can skip this step. But for Ubuntu Trusty (14.04 LTS) users, since OpenJDK 8 is not available on Trusty, please install Oracle JDK 8:

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer

Note: You might need to sudo apt-get install software-properties-common if you don't have the add-apt-repositorycommand. See here.

2. Add Bazel distribution URI as a package source (one time setup)

$ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
$ curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -

If you want to use the JDK 7, please replace jdk1.8 with jdk1.7 and if you want to install the testing version of Bazel, replace stable with testing.

3. Install and update Bazel

$ sudo apt-get update && sudo apt-get install bazel

Once installed, you can upgrade to newer version of Bazel with:

$ sudo apt-get upgrade bazel

方案二:

5.1 安装Bazel依赖

由于本教程使用tensorflow源码编译/安装,所以需要使用 bazel build。

链接:https://www.bazel.io/versions/master/docs/install.html 
ubuntu16.4搭建tensorflow环境

在terminal中依次输入以下1-7的命令

ubuntu16.4搭建tensorflow环境

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
curl https://bazel.io/bazel-release.pub.gpg | sudo apt-key add -

5.2 安装Bazel

之后回到之前的Tensorflow安装教程页面:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md

ubuntu16.4搭建tensorflow环境

点击链接: installer for your system,跳转到Bazel的下载页面:

ubuntu16.4搭建tensorflow环境

下载bazel-0.3.2-installer-linux-x86_64.sh到桌面,然后在terminal中输入以下命令

cd  /home/***(自己的用户名)/Desktop/                  #(这个命令意思是找到刚刚我们用U盘传过来的文件)
chmod +x PATH_TO_INSTALL.SH #对.sh文件授权
./PATH_TO_INSTALL.SH --user #运行.sh文件

5.3 安装第三方库

在terminal中输入以下命令

sudo apt-get install python-numpy swig python-dev python-wheel #安装第三方库
sudo apt-get install git

6. 安装tensorflow

6.1 下载tensorflow

在terminal中输入以下命令

git clone https://github.com/tensorflow/tensorflow

特别注意,我使用的是tensorflow 0.11版本,该版本要求cuda 7.5 以上,cuDNN v5。 
默认下载目录是在/home下

6.2 配置tensorflow

还是刚刚的网址 
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md

在terminal中输入以下命令:

cd ~/tensorflow                        #切换到tensorflow文件夹
./configure #执行configure文件

然后按照下图选项进行操作:

ubuntu16.4搭建tensorflow环境

6.3 创建pip

ubuntu16.4搭建tensorflow环境

在terminal中输入以下命令:

bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
sudo pip install --upgrade /home/***(你自己的用户名)/Desktop/tensorflow-0.11.0rc1-cp27-none-linux_x86_64.whl

6.4 设置tensorflow环境

ubuntu16.4搭建tensorflow环境

bazel build -c opt //tensorflow/tools/pip_package:build_pip_package
# To build with GPU support:
bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
mkdir _python_build
cd _python_build
ln -s ../bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles/org_tensorflow/* .
ln -s ../tensorflow/tools/pip_package/* .
python setup.py develop

说明:在编译可能需要花费很长时间,慢慢等就行了,或许我的电脑配置太低,等了大半天才编译完。

此时恭喜你,已经完成了安装

7. 测试tensorflow

这里进行测试,如果你能跟我看到同样的画面,那恭喜你成功配置GPU版的tensorflow啦!

ubuntu16.4搭建tensorflow环境

$ cd tensorflow/models/image/mnist
$ python convolutional.py

8. 常见问题

8.1循环登录

在ubuntu14.04安装N卡驱动后,会出现无法显示登录界面或者循环登录的问题。这主要是显卡不兼容,具体解决思路可以参考google上的解决方案,关键词 ubuntu login loop。 
经过测试,网上的教程对我都不适用,无奈转向ubuntu16.04

8.2 缺少第三方库

因为这个教程是我安装成功之后写的,其中难免遗忘某些库的安装,例如Git、pip这些库,安装过程很简单,具体可以google。

8.3 tensorflow配置问题

在执行./configure 或者设置tensorflow环境时,如果出现无法找到某个库的路径,那么检查是否正确的设置了cuda的环境变量,具体参考 4.1节。

8.4 在测试时提示unable to load cudnn dso

  在使用 ll 命令查看/usr/local/cuda/lib64中的文件和原cuda/lib64文件时发现不一致,可能是在copy过程中出现问题。解决办法。

在/usr/local/cuda/lib64文件夹中执行以下命令

sudo rm libcudnn.so. libcudnn.so

sudo ln -sf libcudnn.so. libcudnn.so

sudo ln -sf libcudnn.so.5.1. libcudnn.so. 

再进行测试,可以看到

>>> import tensorflow as tf
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcurand.so locally

说明一切成功。

说明:转载自

http://blog.****.net/zhaoyu106/article/details/52793183