您的位置:首页 > 其它

ubuntu16.04下的tensorflow源码安装,踩坑&填坑记录[ubuntu16.04+GTX960+CUDA8.0+cuDNN5.1.5]

2016-11-28 23:05 483 查看
2017.2.26添加: tensorflow1.0已出, ubuntu16.04 + CUDA8.0 + GTX960 + tensorflow1.0直接装好CUDA以及cudnn,pip install即可。

写在前面:

本文作者水平有限,难免有诸多错误,还请各位大神不吝赐教。

下面是几个主要参考的网站:

tensorflow官网

tensorflow的GITHUB网址

我爱自然语言处理

ubuntu论坛

谷歌搜索引擎

系统环境

ubuntu16.04.1+GTX960+CUDA8.0+cuDNN5.1.5+tensorflow-master

目标&方法简介

目标:安装tensorflow

方法:

2.1. 安装驱动

2.2. 安装CUDA

2.3. 安装cuDNN

2.4. 安装bazel

2.5. 安装tensorflow

详细步骤

1. 安装驱动

打开设置–>软件和更新–>附加驱动,选取合适的nvidia的专有驱动。作者选用的是nvidia-367.53。



1. 建议选用361及以后版本(因为CUDA8.0的默认驱动为361)

2. 想要获得更多的驱动版本选择,可以加入nvidia的ppa

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt-get update


3. 加入ppa之后可以直接安装驱动

sudo apt-get install nvidia-367


4. 终端安装驱动可能会出现需要同意协议等界面,使用Tab,Shift,Enter按钮操作,此方法对于所有终端安装软件情况适用。

5. 建议加入ppa之后到附加驱动中安装驱动,因为如果安装版本不对,可能造成不可预料的后果,详见踩坑&填坑实录1

2. 安装CUDA

这个部分参照的是深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0

在驱动安装的部分,上文要求安装几个软件,作者并不知道有什么用,但仍然安装了。

sudo apt-get install mesa-common-dev

sudo apt-get install freeglut3-dev


其他可以参照上文安装,这里仅注明几个心得:

1. deb确实问题多多,亲测

2. 在询问是否安装驱动那里要选n。如果选择了y,正常情况在终端里是运行失败的,但如果运行成功,请参照踩坑&填坑实录1

3.
-tmpdir=/opt/temp/
的部分我没有加,也没有问题,个人觉得可能和电脑配置有关。

4. 加入
PATH
以及
LD_LIBRARY_PATH
的部分,上文给出的
/usr/local/cuda-8.0
的路径,但是官网以及其他博客都是使用
/usr/local/cuda
路径,不知道会有什么影响,作者采用了后者。

5. 测试的时候,有些测试需要
sudo
的权限,才可以正常测试。

6. 有时候ubuntu重启的时候nvidia的驱动会挂掉,可以采取重启或者重装的方法。作者采用了附加驱动的安装方法之后就没有遇到过这个问题。

3. 安装cuDNN

请严格按照tensorflow官网的要求安装,

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*




1. 下载Linux的tgz版本,不要下载deb或者run版本。

2. 复制的路径是cuda安装的路径,应该和你的PATH中CUDA指向路径一致。

4. 安装bazel

请按照bazel官网安装



1. bazel官网的ubuntu安装法安装的是0.4.0版本,此版本无法编译tensorflow0.11。如需编译tensorflow0.11,请按照installer安装法安装0.3.2版本。

2. 请严格按照bazel中的要求安装jdk,详见踩坑&填坑实录2

3. bazel的installer安装方法中的–user不可省略,且安装之后需要修改.bashrc文件使得bazel安装成功。

5. 安装tensorflow

请严格按照官网安装。

下面记录一些心得:

1. ./configure过程中遇到com.google….错误:bazel安装失败,详见踩坑&填坑实录2.

2. ./configure的时候还遇到一个有关test的错误(具体未记录,已遗忘):bazel版本错误,详见github的issue板块

3. bazel build失败,可能是驱动挂了,请自行检查,重复上述步骤。

4. pip install的whl名称会根据平台变化,请到
/tmp/tensorflow_pkg/
目录下自行查看。

5. 请完整完成官网的全部过程,包括Setting up TensorFlow for Development,才可以在交互式环境使用。

6. 如果安装的是tensorflow0.11版本,那么tutorial里mnist的fully_connected.py是有错误的,这是因为版本之间对于函数的定义不同导致。

踩坑&填坑实录

1. 驱动安装错误导致的循环登录

循环登录的情况很多,下面仅针对因为驱动错误导致的循环登录。

进入tty界面:ctrl+alt+F1-F6皆可

1.1. 退出使用ctrl+alt+F7

1.2. 重启使用sudo reboot

1.3. 中文乱码的解决:fbterm

sudo apt-get install fbterm

sudo fbterm


具体详见在linux安装搜狗输入法和fbterm解决ubuntu 14.04 tty终端中文显示和输入

卸载原有驱动

sudo apt-get purge nvidia-*


安装驱动

按照上文安装驱动的方法,如果和作者环境相同,那nvidia-367应该没问题

启动lightdm(如果为了安装驱动,曾经关闭过得话)

4.1. lightdm是用来管理登录系统的,会调用X.org,在安装CUDA时安装驱动,就会要求进入tty界面,然后关闭X.org程序。

4.2. lightdm的关闭与开启

sudo lightdm start || sudo service lightdm start

sudo lightdm stop || sudo service lightdm stop


2. bazel安装失败

bazel的卸载

sudo find / -name "*bazel*"


删除所有找到的文件皆可

bazel clean失败

bazel的缓存位于
~/.cache/bazel


apt-get install default-jdk
会导致bazel安装失败,应安装规定版本

后记

博客写作时间:2016-11-26.

当前ubuntu16.04以及CUDA8.0都还未成熟,所以安装过程遇到很多坑。本文是踩坑&填坑实录,只针对于使用ubuntu16.04并使用GTX960及以上显卡的情况。对于使用ubuntu14.04或者可以使用CUDA7.5的情况,有更方便的方法,具体请参照tensorflow的官网

为什么使用ubuntu16.04:

因为同时存在UEFI模式的win10系统,且想保留secure boot(后来装驱动还是关掉了,但保留了fast boot)。

为什么使用CUDA8.0:

因为GTX960只支持CUDA8.0及以上,而且CUDA8.0比7.5速度快很多。

为什么源码安装:

因为官网当前的whl不支持ubuntu16.04+CUDA8.0+cuDNN5.1.5,需要自己编译。

为什么使用tensorflow-master:

因为作者小白,想要从tutorial开始学习,而tutorial中的某些代码不被tensorflow0.11支持;且编译tensorflow0.11需要bazel0.3.2版本,而作者当时已经安装好了0.4版本。

心得

这次安装过程中从网上各位大神的博客里收益良多,也感慨中文资源的匮乏。以后应该会培养写博客的习惯,但是这个CSDN的编辑器感觉并不是很舒适,不知道能不能坚持下来。

虽然文章都是我自己写的,但是很多知识都是从网上学的,这次没有引用,感觉不安;如有侵权,烦请通知,自会注明或者删除。

心得部分很多都是我自己对事情的理解,作者对ubuntu和tensorflow都不甚了解,还望不吝赐教,相互交流,共同学习。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息