转载请注明:

仰望大牛的小清新: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
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++ 

5.安装 CUDA 8.0

cd /media/你的用户名/TOSHIBA\ EXT/alu/CUDA/ # 进入cuda 所在文件夹
# 根据官网上的提示安装 cuda 8.0
sudo dpkg -i cuda-repo-ubuntu1604---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..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安装教程

Ubuntu 安装 tensorflow-gpu + keras的更多相关文章

  1. ubuntu安装 tensorflow GPU

    安装支持GPU的tensorflow前提是正确安装好了 CUDA 和 cuDNN. CUDA 和 cuDNN的安装见 Nvidia 官网和各种安装教程,应该很容易,重点是要选准了支持自己GPU的 CU ...

  2. 【Tensorflow】Ubuntu 安装 Tensorflow gpu

    安装环境:Ubuntu 16.04lts 64位,gcc5.4 1.安装Cuda 1. 下载cuda toolkit. 下载cuda8.0 地址:https://developer.nvidia.co ...

  3. Ubuntu在Anaconda中安装TensorFlow GPU,Keras,Pytorch

    安装TensorFlow GPU pip install --ignore-installed --upgrade tensorflow-gpu 安装测试: $ source activate tf ...

  4. 通过Anaconda在Ubuntu16.04上安装 TensorFlow(GPU版本)

    一. 安装环境 Ubuntu16.04.3 LST GPU: GeForce GTX1070 Python: 3.5 CUDA Toolkit 8.0 GA1 (Sept 2016) cuDNN v6 ...

  5. windows安装TensorFlow和Keras遇到的问题及其解决方法

    安装TensorFlow在Windows上,真是让我心力交瘁,想死的心都有了,在Windows上做开发真的让人发狂. 首先说一下我的经历,本来也就是起初,网上说python3.7不支持TensorFl ...

  6. win10+anaconda安装tensorflow和keras遇到的坑小结

    win10下利用anaconda安装tensorflow和keras的教程都大同小异(针对CPU版本,我的gpu是1050TI的MAX-Q,不知为啥一直没安装成功),下面简单说下步骤. 一 Anaco ...

  7. Anaconda安装tensorflow和keras(gpu版,超详细)

    本人配置:window10+GTX 1650+tensorflow-gpu 1.14+keras-gpu 2.2.5+python 3.6,亲测可行 一.Anaconda安装 直接到清华镜像网站下载( ...

  8. ubuntu16.04下安装TensorFlow(GPU加速)----详细图文教程【转】

    本文转载自:https://blog.csdn.net/zhaoyu106/article/details/52793183 le/details/52793183 写在前面 一些废话 接触深度学习已 ...

  9. ubuntu 安装TensorFlow

    1.安装pip $ sudo apt-get install python-pip python-dev 2.安装 TensorFlow for Python 2.7 # Ubuntu/Linux - ...

  10. Ubuntu18.04 安装TensorFlow 和 Keras

    TensorFlow和Keras是当前两款主流的深度学习框架,Keras被采纳为TensorFlow的高级API,平时做深度学习任务,可以使用Keras作为深度学习框架,并用TensorFlow作为后 ...

随机推荐

  1. LeetCode -- Linked List Circle ii

    Question: Given a linked list, return the node where the cycle begins. If there is no cycle, return  ...

  2. SRM710 div1 ReverseMancala(trick)

    题目大意, 给定一个有n个点的环,n不超过10,每个点上有一个权重 起始时权重将会给出,然后有2种操作 第一种操作是,选择一个位置i,获得权重w = a[i],把a[i]变成0,然后接下来在环上顺着走 ...

  3. 【题解】AHOI2009同类分布

    好开心呀~果然只有不看题解做出来的题目才会真正的有一种骄傲与满足吧ヾ(๑╹◡╹)ノ" 实际上这题只要顺藤摸瓜就可以了.首先按照数位dp的套路,有两维想必是省不掉:1.当前dp到到的位数:2. ...

  4. 【题解】NOI2014购票

    实际上是一个不完美算法……cogs上面A不掉(爆栈啦).感谢机房大佬PPY的指点,现在也写出来供大家参考参考,理解起来应该是比较简单的一种. 我们首先get出斜率优化方程: \(dp[v] = dis ...

  5. [bzoj5285] [HNOI2018]寻宝游戏

    Description 某大学每年都会有一次Mystery Hunt的活动,玩家需要根据设置的线索解谜,找到宝藏的位置,前一年获胜的队伍可以获得这一年出题的机会. 作为新生的你,对这个活动非常感兴趣. ...

  6. [洛谷P1278]单词游戏

    题目大意:给一个有$n(n\leqslant16)$个单词的字典,求单词接龙的最大长度 题解:发现$n$很小,可以状压,令$f_{i,j}$表示选的数的状态为$i$,最后一个字母是$j$的最大长度. ...

  7. 02.Java面向对象问题

    目录介绍 2.0.0.1 重载和重写的区别?重载和重写绑定机制有何区别?父类的静态方法能否被子类重写? 2.0.0.2 封装.继承.多态分别是什么? 2.0.0.3 接口和抽象类的区别是什么?接口的意 ...

  8. [BZOJ 2438] [中山市选2011]杀人游戏 Tarjan缩点

    这个题很容易想到正解就是缩点找入度为零的点,那么我们考虑一种特殊情况就是,一个入度为零的点我们不访问他就知道他是不是凶手,那么这样的话就是:I. 他是一个真·孤立的点 II. 他在图里但是在他的强联通 ...

  9. P2765 魔术球问题(网络流24题)

    题目描述 «问题描述: 假设有n根柱子,现要按下述规则在这n根柱子中依次放入编号为1,2,3,...的球. (1)每次只能在某根柱子的最上面放球. (2)在同一根柱子中,任何2个相邻球的编号之和为完全 ...

  10. 关于jQuery.extend

    这次来了解下jQuery的extend吧,作为菜鸟的我学艺不精,看插件时经常看到extend函数的使用,从网上看到一篇不错的介绍,特地转载过来留给自己收藏学习: ------------------- ...