博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ubuntu16.4搭建tensorflow环境
阅读量:6242 次
发布时间:2019-06-22

本文共 6765 字,大约阅读时间需要 22 分钟。

1 说明:

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

1. 下载

1.1 系统镜像

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

镜像地址  

1.2 CUDA 8.0

(下载地址) 

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

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

1.3 cuDNN v5

下载地址: (需要登录) 

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

选择cudnn v5.1 for linux

1.4 Tensorflow 0.11

tensorflow github上面提到 4 种安装方式,本教程使用 第四种 源码安装 

Virtualenv installation 
Anaconda installation 
 installation 
Installing from sources 
(下载地址) 
说明: 我选择的是linux gpu python2

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

 

2. 安装ubuntu16.04 LTS 系统

详情请查看之前笔记

 

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.9sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30sudo update-alternatives --set cc /usr/bin/gccsudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30sudo 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​.debsudo apt-get updatesudo 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 配置环境变量

按照上图的教程,在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 配置环境变量

在terminal中输入以下命令:

sudo apt-get install python-pip python-dev pip install --upgrade pip

5. 安装Bazel

方案一:

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 .

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。 

链接: 

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

sudo add-apt-repository ppa:webupd8team/javasudo apt-get updatesudo 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.listcurl https://bazel.io/bazel-release.pub.gpg | sudo apt-key add -

5.2 安装Bazel

之后回到之前的Tensorflow安装教程页面: 

 

点击链接: ,跳转到Bazel的下载页面: 

下载到桌面,然后在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

还是刚刚的网址 

在terminal中输入以下命令:

 

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

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

 

6.3 创建pip

在terminal中输入以下命令:

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

 

 

6.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_packagemkdir _python_buildcd _python_buildln -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啦! 

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

8. 常见问题

 

8.1循环登录

在ubuntu14.04安装N卡驱动后,会出现无法显示登录界面或者循环登录的问题。这主要是显卡不兼容,具体解决思路可以参考google上的解决方案,关键词 ubuntu login loop。 

经过测试,网上的教程对我都不适用,无奈转向ubuntu16.04

8.2 缺少第三方库

因为这个教程是我安装成功之后写的,其中难免遗忘某些库的安装,例如、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.5 libcudnn.sosudo ln -sf libcudnn.so.5 libcudnn.sosudo ln -sf libcudnn.so.5.1.5 libcudnn.so.5

再进行测试,可以看到

>>> 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

说明一切成功。

 

说明:转载自

 

你可能感兴趣的文章
MySQL 缓存表建触发器
查看>>
.NetCore~C#6的一些新特性
查看>>
Recurrent Neural Networks(RNN) 循环神经网络初探
查看>>
多线程中数的原子性加减
查看>>
客户被绑,蒙眼,惊问:“想干什么?” 对方不语,鞭笞之,客户求饶:“别打,要钱?” 又一鞭,“十万够不?” 又一鞭,“一百万?” 又一鞭。客户崩溃:“你们TMD到底要啥?” “要什么?......
查看>>
jQuery.fly插件实现添加购物车抛物线效果
查看>>
[svc]linux的ip命令操作接口和路由表
查看>>
39.Node.js域名解析---DNS模块
查看>>
Ajax 跨域,这应该是最全的解决方案了
查看>>
vs2010下release版本调试设置
查看>>
Windows连接Linux虚拟机里面的Docker容器
查看>>
MYSQLDUMP参数详解(转)
查看>>
SLA
查看>>
MyProject / FuzzyPages | Elias的个人主页
查看>>
三子棋局-挑战你的逻辑思维
查看>>
Linux 安装 MySQL / MySQL 主从备份
查看>>
python调用linux shell脚本,并返回结果一例
查看>>
IT的一些常识
查看>>
无边框Winform 简单实现拖动
查看>>
潜移默化学会WPF--Border,焦点移动
查看>>