您的位置:首页 > 其它

Ubuntu 16.04安装和配置TensorFlow-gpu

2017-04-17 10:53 525 查看
在Linux操作系统下的安装



安装环境

Tensorflow的支持列表里是没有Windows的。虽然可以用Docker来实现在Windows上运行,但小问题很多,它支持的最好的还是基于unix内核的系统,如Linux,因此我们最好还是安装一个Linux的环境来运行它。Linux是一款免费的开源操作系统,应用非常广泛,如著名的Android就是基于Linux改进的一款针对手机的操作系统。而对于我们来说,最易于理解的版本就是著名的Ubuntu,点击链接即可去官网下载,正如前面所说,下载和使用都是免费的。

如果你使用的是Mac,那就方便很多了,因为Mac os本身就是一个基于Unix的操作系统,已经搭载了全部安装Tensorflow所需要的组件。所以安装的很多步骤都可以省去,直接进行Tensorflow的安装,不过命令同Ubuntu有所不同。但你也可以看看接下来的教程,对理解那些命令也会有帮助。呃……你说你在Mac上装了Windows?

下载之后,你会得到一个装着Ubuntu系统的.iso文件。有两个办法来处理它,一是直接安装,同电脑现在在用的系统组成双系统(当然你也可以换掉现在的系统,不过我想应该没有人会愿意这么做的吧哈哈)。如果你不想那么大动干戈,也可以通过虚拟机来虚拟一个系统。不过,安装虚拟机对配置有一定要求,毕竟它相当于在你的电脑上同时打开两个系统了——CPU最好不要低于4代i3(尤其是笔记本,CPU型号的i3/5/7-xxxx的四位数里第一个x就表示它的代数)。内存——注意,内存一定不能低于4g,因为你给虚拟机分配的内存在虚拟机启动之后会1:1的从你的物理内存中划走。再加上物理机系统的消耗。当然,这个配置表是只有下限没有上限的,你的电脑配置越好,体验就越好。而装双系统的话,对配置的需求就小很多了。



虚拟机安装中

网上相关的教程都比较多,在这里就不重复了,注意搜索安装双系统教程的时候要加上你现用的系统和你下载的Ubuntu系统的版本号。这里只讲几个需要注意的地方。



因为Linux对安全性非常重视,因此不仅权限管理十分严格,在创建操作系统的时候也会要求你一定要输入一个密码,这个密码将用来登陆和获得root权限。就比如上面这个界面,如果你不把所有空格都填好是没法点下一步的。


Python



Ubuntu桌面的样子,(悄悄说一句笔者觉得基于Unix的系统普遍比Windows好看太多,主要是字体看着真舒服)

安装好之后,我们看到了一些熟悉的软件和一些不熟悉的软件,我们先不去管它,介绍一下Python。Python是一种高级语言,它的特点是程序很简洁,但是因为简洁,所以在将其翻译成CPU可以理解的指令——也就是执行代码的时候速度会比那些低级一些的语言,比如C语言慢一些。不过在现在电脑的性能面前,这种速度的差别大多数时候根本不足挂齿。


解释器

很多人可能会觉得Python很抽象,因为提到Python,大家不会像C语言那样马上想起它有一个专用的编译器。Python可以执行的地方千奇百怪。甚至可以很方便的在系统的Terminal(一个类似于Windows里的命令行的工具)里直接执行。Ubuntu自带了Python,因此一般不用烦心安装事宜。

Tensorflow支持多种前端语言,但对Python的支持是最好的,因此我们的教程也基于Python来进行,首先我们打开Terminal。作为Ubuntu中非常重要的一个组成部分,有很多种方法可以打开它。比如在桌面上点击右键



也可以点击左上角的那个Ubuntu图标搜索。打开后可以看到Terminal窗口如下所示。标题栏里@符号前面是你的用户名。



如果你在你的计算机使用史中从来没有离开过图形用户界面(就是有一个鼠标和很多图标让你点的那种)。看到这个简单得吓人的窗口不要慌,只要输入正确的命令就好了。

在正式开始之前我想说:一定要注意窗口给出的提示(英文)。在实际操作中可能会碰到各种各样的问题,但常见的问题其实都可以根据它的报错信息找到原因,只要上网搜一搜相应的信息就能解决,甚至它自己就会给出解决的建议。如果你发现你的步骤一切正确,但就是无法成功,多试几次就好了,毕竟这些服务都是谷歌提供的,而谷歌……你懂的。


必不可少的python-pip和python-dev


在这个窗口中输入命令:


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

注意,窗口中其实已经有一个$符号了,因此你在复制或者输入命令时其实不用将这个$符号也包括进去,但是网上的教程给出命令的时候一般是会把这个符号包括进去的,作为一个标志。注意一下就好。

命令最开始的sudo意味着这条指令将以root权限执行,所以需要输入你最开始设置的那个密码,注意输入过程在屏幕上是不会有任何体现的。输完直接按回车就行。



输入后会出现一串代码,然后问是否继续,输入y回车

然后可以静待安装完成,解释一下这条命令:apt-get是从软件仓库中获取软件的一条命令,而软件仓库是Linux各大发行版的共有特征:它是一系列存放软件的服务器或网站,包含了软件包和索引文件,用户可以很轻松的使用命令自动定位并安装其中的软件,而省去了到处搜索的麻烦。install则是安装指令,而python-pip和python-dev则是两个需要安装的软件包的名字。pip可以理解成一个比较高级的软件安装器,安装Tensorflow要用到,而dev则是一个额外的类库,也是Tensorflow的安装和运行需要的。如果一切顺利,在大串英文划过后,我们会看到如下的界面:




此时就可以安装Tensorflow了,指令如下:

$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
如果提示找不到对应的包,使用
pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12.0rc1-cp27-none-linux_x86_64.whl[/code]1 1

安装GPU支持的版本: 

# Requires CUDA toolkit 8.0 and CuDNN v5. 其他版本,参考下面的 “Installing from sources”
$ pip install tensorflow-gpu
1
1

如果提示找不到对应的包,使用
pip install --ignore-installed --upgrade TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.0rc1-cp27-none-linux_x86_64.whl
1
1

注意:如果是从一个较老的版本(TensorFlow<0.7.1)进行升级,需要首先卸载之前的TensorFlow和protobuf使用:pip uninstall

Anaconda installation 

Anaconda是一个Python发行版,包括大量的数字和科学计算包。使用“conda”来管理软件包,并且拥有自己的环境系统。安装步骤

安装Anaconda 

创建conda环境 

激活conda环境,在其中安装TensorFlow 

每次使用TensorFlow时,激活conda环境

Anaconda具体的安装和使用可以参考:https://www.continuum.io/downloads

Installing from sources

从源码构建TensorFlow,具体的步骤参考:http://blog.csdn.net/toormi/article/details/52904551#t8

就像前面所说的,你可能会碰到这样那样的问题,比如下图这样的



当时安装到这一步的时候,由于受到网速的制约,多下载几次就可以了。在这些时刻,不要慌张,仔细阅读错误信息,越往后的通常越重要,因为结论都是在最后给出的,像这个的最后:



你看,它不仅告诉了你应该试着做什么,连怎么做都告诉你了。按它说的做就好

不过其实当时笔者用的并不是8.1.1版本,使用升级命令后也只是升级到了8.1.1版本,再次输入相同命令,它会告诉你你的版本已经是最新的了。但问题确实解决了,这条提示在之后没有再出现。



更新程序将版本更新到了8.1.1,然后这个提示就不会再烦你了

再次输入安装Tensorflow的命令,如果不行,就多试几次,



仔细看这些黄字的信息,会发现Network is unreachable这样的字样,如果你有什么传说中的利器的话,现在是时候拿出来用了。但是不用也没关系,多试几次,还是可以成功的。



出现上图这样的界面的时候,你就可以长舒一口气,因为安装已经完成,现在你已经可以使用Tensorflow了,让我们跟着教程向世界说声hi吧。

从Terminal进入Python环境的方法也很简单,直接输入命令:Python。如果本机已经安装了Python,Terminal会显示Python的版本号等信息,同时下一个指令的前缀会由用户名等一串字符变成这样的东西:“>>>”,这说明进入完成了。



按照下面的命令一行一行的敲入代码,语法我在这就不解释了~



为了到达这一步,你可能付出了很多艰辛,可能中途出了很多错,但相信当你看到程序真的按照你的指令来运行了一遍,你会觉得这一切都是值得的。



#彩蛋时间#

1.程序员们在接触一门新语言的时候,通常做的第一件事就是编写一个Hello World程序,这一惯例源自最初一批大神们对计算机程序的希冀,希望它们就像一个新生儿一样,能友善的对这个世界宣告它的到来。

2.数字42的含义非常深刻。据著名一本道科幻小说“银河系漫游指南”所说,42是一个关于“生命、宇宙以及一切”的问题的答案(哈?你问我问题是什么?)。谷歌的创始人很可能也是这本小说的狂热粉丝,因为谷歌把这个彩蛋也嵌入了它们的搜索引擎之中,而且谷歌的总部外面就有一个“42”的模型。


大型程序开发必备:IDE(集成开发环境)

虽然说在Terminal里就可以直接编程了,但我们总还是需要一个工具的,要不然要编一个大型程序几乎是不可能完成的事。这就是IDE出场的时候了。大家就会惊喜的发现,自己之前在C语言看过的熟悉的编程界面又回来了(当然它们很多都是收费的)。其实由于Python是开源的,理论上任何人足够厉害的人都能开发出针对它的IDE,而确实有很多人这样做了。牛人太多,他们做出的工具孰优孰劣大家并没有统一的意见,所以大家干脆就不介绍该用哪个了,这才造成了很多人对Python“抽象”的感觉。

好用的IDE有很多,本文介绍的是Komodo IDE的免费版Komodo Edit。在Linux下打开它的官网(点击链接http://komodoide.com/download/edit-linux64/#),下载得到的是一个压缩文件。点击右键解压。

Linux中安装有些第三方软件的方法和Windows不太一样,比如这款,在它的文件夹里有一个install.sh。



这实际上就是安装文件,但直接打开它是不行的,要安装它还得在Terminal里进行。进入Terminal,确保自己在普通而不是Python环境下,然后通过输入cd+文件夹名称,逐层进入这个安装文件所在的文件夹,如进入Download文件夹,就输入:cd Download(Python对大小写敏感,因此最好养成在输入时都分清大小写的习惯。),因为在输入一个安装命令的时候,程序只会在你当前所在的那个文件夹(不包括子文件夹)里搜索安装文件的名称。习惯图形界面的人可能会有点头晕,但是只要牢记以下这点就能找到回家的路:打开Terminal时默认你所在的文件夹对应的文件管理器界面就是下图这个。在初期你可以一边开着图形界面打开文件夹,一边在Terminal里敲出对应的路径,这样就不会迷路了。



当然,有些软件有更简单的安装方式,这里不讲了。

到达安装文件所在的界面之后,输入./+文件名称,如本例中就是输入./install.sh,效果如下:



按照信息中给出的路径就可以找到启动这个程序的文件了,本例的文件在bin里。



接下来的设置就和在Windows中差不多了。



打开后,我们通过它试验一下官方教程中“介绍”部分给出的一个相对简单的算法。

点击New File



点击右上角的语言选择,选择Python,这样就可以在输入过程中检查出一些语法错误。



(如果直接复制的话,会把网页里带有的一些奇怪的代码也带过来,会导致程序运行出错,如下面示例中出现过的那样,因此需要将中文注释删掉。)将输入的代码保存为*.py,这是Python文件的后缀名。可以通过Terminal调用。按照之前的方法在Terminal中进入到存放文件的文件夹里,本文中的路径是这样的:



然后输入Python+文件名,本例中是Python Text-3.py,由于这个算法很简单,很快就能得到结果。满满的成就感有没有?



安裝方法二:(参考:https://www.2cto.com/kf/201612/578337.html)該方法不需要下載docker,直接安裝則可以,关键的几个步骤如下所示,1、

原来用Ubuntu14.04,也不是新装的系统,安装CUDA很长时间都不行,现在换成新的Ubuntu16.04,在没有更新系统时先安装CUDA,还是比较顺利的,一次就装好了。

基本配置:Nvidia GTX960M + Ubuntu16.04 64位 

由于默认Ubuntu系统的显卡驱动并非是Nvidia驱动,需要先安装合适的Nvidia显卡驱动才能安装CUDA,去官网http://www.geforce.com/drivers查找显卡驱动型号 



可以自动检测(需要安装JAVA驱动) 


 

此处采用手动查找 



最新的稳定版驱动为375,执行以下代码安装
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-375
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
1
2
3
4
5

执行完后重启,执行nvidia-msi查看驱动信息,显卡型号是GTX 960M,显存4G,版本为375.66

2.下载cuda:cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64.deb,然后安装cuda,关键代码如下:

sudo dpkg -icuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
      sudo apt-get update

      sudo apt-get install cuda

安装完毕后,再声明一下环境变量,并将其写入到 sudo gedit ~/.bashrc 的尾部:

?
保存退出,运行source ~/.bashrc

结果:最后一行显示result=pass表示安装成功。
      查看gcc版本信息:gcc –v


      




      由于cuda8.0不支持gcc 5.0以上的编译器,因此需要降级,把编译器版本降到4.9:

      sudoapt-get install g++-4.9
      sudoupdate-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
      sudoupdate-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
      sudoupdate-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
      sudoupdate-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10
      sudoupdate-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
      sudoupdate-alternatives --set cc /usr/bin/gcc
      sudoupdate-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
      sudoupdate-alternatives --set c++ /usr/bin/g++
      


3.下载cudnn:版本为cudnn-8.0-linux-x64-v5.1.tar 安装代码如下:
如果要使用gpu来对tensorflow进行加速,除了安装CUDA以外,cuDNN也是必须要安装的。跟cuda一样,去nvidia的官网下载cuDNN的安装包。不过这次没法直接下载,需要先注册,然后还要做个调查问卷什么的,稍微有点麻烦。我下的是cuDNN v5.1 Library for Linux这个版本。不要下cuDNN v5.1 Developer Library for Ubuntu16.04 Power8 (Deb)这个版本,因为是给powe8处理器用的,不是amd64.
下载下来以后,发现是一个tgz的压缩包,使用tar进行解压
?
安装cuDNN比较简单,解压后把相应的文件拷贝到对应的CUDA目录下即可
?

安装tensorflow-gpu版

我之前已经安装了cpu-only版的tensorflow,所以现在要先把原先的tf卸载
?
之后从https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.0rc1-cp35-cp35m-linux_x86_64.whl下载gpu版的tf
?
来测试一下
?
结果如下



没有报错,说明已经安装成功了。
=========================
存在的问题:明明已经安装了tensorflow还是会出现attribute error: module 'tensor flow'has no tribute 'constant',
solution:sudo pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.4.0-cp35-cp35m-linux_x86_64.whl  安装完上述内容之后,若是存在importerror:libcudnn.so.6;cannot open shared object file:no such file or directory,则需要重新下载和安装cudnn,版本为:cudnn-8.0-linux-x64-v6.0.tgz 

参考:tensorflow1.1和python3.5.3安装
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ubuntu