转载:

仰望大牛的小清新:http://www.cnblogs.com/luruiyuan/

本文原网址:http://www.cnblogs.com/luruiyuan/p/6660142.html

我用的Ubuntu版本是 16.04 ,并且使用了 gnome 作为桌面(这一点无关紧要),经历了许多波折,终于完成了以 tensorflow 为后端的 keras 的安装。

tensorflow-gpu 版本的安装:

1.下载 CUDA 8.0

地址:https://developer.nvidia.com/cuda-downloads

安装如下版本:

2.下载 cuDNN v5(这里我下载的是 v6,但是事实证明 tensorflow 不直接支持 v6,除非你自己编译时制定了 v6,否则按照如下教程安装的 tensorflow 只能加载 v5)

地址:https://developer.nvidia.com/cudnn

这里需要先 登录/注册 后才能下载

3.安装 NVIDIA 驱动:

首先打开 terminal,输入一下指令,更新应用列表

sudo apt-get update

多亏了 Linux 社区的强大支持,我们可以用很简洁的方式安装驱动:

按下 win 按键,打开菜单,如图:

然后在上方的 type to search 中输入: additional drivers 打开 "additional drivers —— 附加驱动",然后选择 与自己显卡匹配的 NVIDIA 驱动,我这里是

using nvidia binary drivers (375)

然后选择 应用更改,这里安装可能会失败,此时你可以继续选择应用更改,多安装几次即可

安装完成后,选择 restart

4. gcc 降版本

CUDA8.0 不支持 gcc 5.0 及以上的编译器,而系统自带的是5.4及以上版本,因此我们需要降版本,否则会在后面报错

在terminal中输入如下指令,将 gcc 版本降到 4.9

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

5.安装 CUDA 8.0

cd /media/你的用户名/TOSHIBA\ EXT/alu/CUDA/ # 进入cuda 所在文件夹
# 根据官网上的提示安装 cuda 8.0
sudo dpkg -i cuda-repo-ubuntu1604-8-0-rc_8.0.27-1_amd64​.deb
sudo apt-get update
sudo apt-get install cuda​

6. 安装 cuDNN

cd  cd /media/你的用户名/TOSHIBA\ EXT/alu/CUDA/ # 进入 cuDNN 安装文件的所在路径
tar xvzf cudnn-8.0-linux-x64-v6.0.tgz # 解压
sudo cp cuda/include/cudnn.h /usr/local/cuda/include # 复制到 include 中
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 # 复制到 lib64 中
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* # 讲头文件复制进去

7. 配置CUDA环境变量

开启 GPU 支持:

根据官网教程

我们在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

保存并关闭后,输入下列命令使环境变量生效:

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

安装完成后,一定要通过如下两条命令对驱动进行检验:

1. NVIDIA的设置界面

nvidia-settings # 打开 NVIDIA 设置界面

这条指令打开的界面如下:

2. NVIDIA GPU 列表

nvidia-smi

这条指令会在 terminal 中产生GPU列表,如,我这里只有一个GPU

网上有些人抄别人的博客,说 nvcc -V 就可以验证,经过我实测,存在 nvcc -V 正常输出但是驱动仍安装失败的现象,因此,上述验证方法是不可信的

8.安装 python3.5.2

由于tensorflow1.0 对于 python3 支持更好,并且目前只支持python3.5.2,因此我们选择 python 3.5.2。

使用 Anaconda3-4.2.0-Linux-x86_64.sh 进行安装,地址如下:

https://repo.continuum.io/archive/

安装完成后,添加环境变量,将其设置为默认的 python 解释器

首先打开环境变量的文件

gedit ~/.bashrc

然后在文件末尾加入 anaconda3 的路径

export PATH=/home/你的路径/anaconda3/bin:$PATH

最后使我们的改动生效

source ~/.bashrc

这样,我们在terminal中输入 python 就会默认打开 anaconda3

这样我们就可以安心使用python3了。

9.安装 keras 和 tensorflow

有了上述安装过程,我们系统中默认的pip将会是anaconda3中自带的pip,这样我们只需要使用pip即可安装 keras 和 tensorflow 到 anaconda 中。

执行如下命令:

pip install tensorflow-gpu keras # 安装 gpu 版本的 tensorflow 和 keras

安装完成后,我们使用如下命令,即可检验是否成功:

python -c "import keras"

如果看到如下输出,就说明安装成功

当然了,我这里安装的 cuDNN 由于版本过高,暂时不能被pip安装的tensorflow所支持,如果改为 cuDNN v5 就能够正常支持了。

希望自己的这篇文章能对像我一样的新手有所帮助。

参考资料:

[1]:ubuntu16.04下安装TensorFlow(GPU加速)----详细图文教程

[2]:Ubuntu16.04+cuda8.0+caffe安装教程

Ubuntu16 安装 tensorflow-gpu + keras python3.5的更多相关文章

  1. ios – 存档期间不存在Xcode环境变量

    我有一个具有TestFlight构建方案的iOS应用程序.在此方案中,我在“运行”选项卡中设置了一个称为TESTFLIGHT的环境变量,值为1.此外,在构建方案的“配置文件”选项卡中,它已选中“使用RUn操作的参数和变量”选项,并在列表中看到相应的EV.当从Xcode运行应用程序时,这可以正常工作,但是当我在存储设备上运行应用程序时,环境变量TESTFLIGHT不存在.我的问题是有一个我在这里缺少的选项/方案选项卡?

  2. 如何在Xcode 7上为项目选择python 3.5.1可执行文件?

    我想在Xcode中设置一个python3项目,但是在我要求为该方案选择可执行文件的步骤中我失败了.请参阅PythoninXcode4+?

  3. Ubantu下配置swift开发环境

    恭喜.现在可以直接在这里写入临时的swift代码,注意是临时的.如果想要写swift,需要新建一个文件,比如touchhello.swift.用vim打开,在里面写入HelloWorld的代码,保存退出.编译上面的代码源文件,打开终端,找到源代码所在目录,输入命令swiftchello.swift,即可编译,如果没有出现错误,则说明编译成功.运行上面的hello,编译之后会出现一个新文件hello;这是ubantu的可执行文件,直接输入./hello即可执行

  4. Compile Swift 4.0-dev on CentOS7.2

    4.changebranch./swift/utils/update-checkout--schemeswift-3.1-branch这个我没有用,直接就是最新的swift-4.0-dev5.runtimeblockgitclonehttps://github.com/mackyle/blocksruntime.gitCFLAGS='-fPIC'./buildlib./installlib找一个blocksruntime库先装上,Ubuntu上有现成的libblocksruntime-dev,CentOS

  5. android – 符合Nvidia Tegra profiler 2.0的移动设备

    解决方法通常任何基于Tegra4和K1的设备都可以工作,但我会推荐Nvidia的Shield/Note用于你的工作,不仅是他们退出便宜,而且他们的机器人留下了很多香草使它更容易使用.还有(可用的)更新策略的优点.

  6. android – 错误:程序“/ndk-build.cmd”在PATH中找不到

    按钮在出现的框中,选择名称字段并键入NDKROOT.在您解压缩AndroidNDK的路径中的值类型的字段中.点击“应用”,完成,对依赖NDK的任何其他项目进行此操作.

  7. python3中join和格式化的用法小结

    这篇文章主要介绍了python中os库的使用,本篇文章记录下python中os库的一些函数使用,对python os库使用感兴趣的朋友跟随小编一起看看吧

  8. gethostbyaddr在Python3中引发UnicodeDecodeError

    本文介绍了gethostbyaddr()在Python 3中引发UnicodeDecodeError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧

  9. python神经网络Keras搭建RFBnet目标检测平台

    这篇文章主要为大家介绍了python神经网络Keras搭建RFBnet目标检测平台,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. Python3 DataFrame缺失值的处理方法

    这篇文章主要介绍了Python3 DataFrame缺失值的处理,包括缺失值的判断缺失值数据的过滤及缺失值数据的填充,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

随机推荐

  1. crontab发送一个月份的电子邮件

    ubuntu14.04邮件服务器:Postfixroot收到来自crontab的十几封电子邮件.这些邮件包含PHP警告.>我已经解决了这些警告的原因.>我已修复每个cronjobs不发送电子邮件(输出发送到>/dev/null2>&1)>我删除了之前的所有电子邮件/var/mail/root/var/spool/mail/root但我仍然每小时收到十几封电子邮件.这些电子邮件来自cronjobs,

  2. 模拟两个ubuntu服务器计算机之间的慢速连接

    我想模拟以下场景:假设我有4台ubuntu服务器机器A,B,C和D.我想在机器A和机器C之间减少20%的网络带宽,在A和B之间减少10%.使用网络模拟/限制工具来做到这一点?

  3. ubuntu-12.04 – 如何在ubuntu 12.04中卸载从源安装的redis?

    我从源代码在Ubuntu12.04上安装了redis-server.但在某些时候它无法完全安装,最后一次makeinstallcmd失败.然后我刚刚通过apt包安装.现在我很困惑哪个安装正在运行哪个conf文件?实际上我想卸载/删除通过源安装的所有内容,只是想安装一个包.转到源代码树并尝试以下命令:如果这不起作用,您可以列出软件自行安装所需的步骤:

  4. ubuntu – “apt-get source”无法找到包但“apt-get install”和“apt-get cache”可以找到它

    我正在尝试下载软件包的源代码,但是当我运行时它无法找到.但是当我运行apt-cache搜索squid3时,它会找到它.它也适用于apt-getinstallsquid3.我使用的是Ubuntu11.04服务器,这是我的/etc/apt/sources.list我已经多次更新了.我尝试了很多不同的debs,并没有发现任何其他地方的错误.这里的问题是你的二进制包(deb)与你的源包(deb-src)不

  5. ubuntu – 有没有办法检测nginx何时完成正常关闭?

    &&touchrestarted),因为即使Nginx没有完成其关闭,touch命令也会立即执行.有没有好办法呢?这样的事情怎么样?因此,pgrep将查找任何Nginx进程,而while循环将让它坐在那里直到它们全部消失.你可以改变一些有用的东西,比如睡1;/etc/init.d/Nginx停止,以便它会休眠一秒钟,然后尝试使用init.d脚本停止Nginx.你也可以在某处放置一个计数器,这样你就可以在需要太长时间时发出轰击信号.

  6. ubuntu – 如何将所有外发电子邮件从postfix重定向到单个地址进行测试

    我正在为基于Web的应用程序设置测试服务器,该应用程序发送一些电子邮件通知.有时候测试是使用真实的客户数据进行的,因此我需要保证服务器在我们测试时无法向真实客户发送电子邮件.我想要的是配置postfix,以便它接收任何外发电子邮件并将其重定向到一个电子邮件地址,而不是传递到真正的目的地.我正在运行ubuntu服务器9.10.先感谢您设置本地用户以接收所有被困邮件:你需要在main.cf中添加:然后

  7. ubuntu – vagrant无法连接到虚拟框

    当我使用基本的Vagrantfile,只配置了两条线:我看到我的虚拟框打开,但是我的流氓日志多次显示此行直到超时:然后,超时后的一段时间,虚拟框框终于要求我登录,但是太久了!所以我用流氓/流氓记录.然后在我的物理机器上,如果我“流氓ssh”.没有事情发生,直到:怎么了?

  8. ubuntu – Nginx – 转发HTTP AUTH – 用户?

    我和Nginx和Jenkins有些麻烦.我尝试使用Nginx作为Jenkins实例的反向代理,使用HTTP基本身份验证.它到目前为止工作,但我不知道如何传递带有AUTH用户名的标头?}尝试将此指令添加到您的位置块

  9. Debian / Ubuntu – 删除后如何恢复/ var / cache / apt结构?

    我在ubuntu服务器上的空间不足,所以我做了这个命令以节省空间但是现在在尝试使用apt时,我会收到以下错误:等等显然我删除了一些目录结构.有没有办法做apt-getrebuild-var-tree或类似的?

  10. 检查ubuntu上安装的rubygems版本?

    如何查看我的ubuntu盒子上安装的rubygems版本?只是一个想法,列出已安装的软件包和grep为ruby或宝石或其他:)dpkg–get-selections

返回
顶部