如今的机器学习运算大多数都是利用gpu进行,包括很大大型游戏,比特币的开采,都离不开GPU的运算,GPU已成为大型运算能力的主要硬件。

大名鼎鼎的机器学习开源框架,如TensorFlow和Caffe,Caffe2都建议使用GPU作为运算平台,有些著名的机器学习开源项目如Detectron物体检测更是明确要求了必须使用GPU作为运行环境。网上有开发者曾经提及到,使用GPU的运算效率起码是使用CPU的十倍以上。基于上述原因,我也着手搭建一个GPU运行环境,不过遇到了许多“新手坑”,浪费了不少时间调试,因此,这里写份博客来让有兴趣搭建GPU机器学习环境的小伙伴们,少走些歪路,更好地进行机器学习的研究。

在这里首先要感谢两位作者,一是提供了CUDA和CUDNN的正确方法的

https://blog.csdn.net/ZWX2445205419/article/details/69429518,

另外一位则是提出了安装过程中许多人曾经遇到的黑屏、循环登录的解决办法

https://blog.csdn.net/AutoRobot410/article/details/52862479

1.安装前准备

GPU型号:NVIDIA GTX750 Ti

1.1 Verify You Have a CUDA-Capable GPU(确认你有一个可用CUDA的GPU)

$ lspci | grep -i nvidia


可以看到,我有三块可用的GeForce GTX 1080,你可以在这里查看你的GPU是否是CUDA-caplable。

1.2 Verify the System Has gcc Installed(查证你是否安装了gcc)

$ gcc --version

2.下载对应cuda和cudnn

cuda 8.0 Linux下载地址:https://developer.nvidia.com/compute/cuda/8.0/prod/local_installers/cuda_8.0.44_linux-run

cuda v6.0 Linux下载地址:cuDNN v6.0 (April 27, 2017), for CUDA 8.0

3,使用以下命令查看Noueau驱动是否被加载

$ lsmod | grep nouveau
# 如果打印出一些信息,说明Noueau被加载了,正常情况下会打印出一些关于nouveau的信息

创建/etc/modprobe.d/blacklist-nouveau.conf,写入:

blacklist nouveau
options nouveau modeset=0

Reboot into text mode (runlevel 3)(重启,进入文本模式)

重启后按: Ctrl+Alt+F1 进入文本模式

停止X服务

$ sudo /etc/init.d/lightdm stop
sudo sh cuda_8.0.61_375.26_linux.run
  • 此处千万不要选安装“Install Graphics Driver”!!!这样是重新安装显卡驱动,百分之百是不匹配的,千万不能选,很有可能导致你重启后一直循环登录!!

安装完成后重启桌面服务

$ sudo service lightdm start

在系统环境里设置CUDA的路径

$ vim ~/.bashrc # 编辑

~/.bashrc 的最后中添加如下代码

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-8.0
export PATH=/usr/local/cuda-8.0/bin:$PATH
$source ~/.bashrc #配置立即生效

安装cuDNN

cd到cuda的安装目录执行解压命令:

$ cd /usr/local
$ sudo tar -xzvf ~/downloads/cudnn-8.0-linux-x64-v5.1.tgz

这样就完成了cuDNN的安装。

验证CUDA是否安装完成和CUDA版本:

$ nvcc -V

在ubuntu自己可以自动匹配找到相应的驱动的,当然你也可以自己根据自己服务器上的显卡型号去官网下载相应的驱动。

或者,如下:

我的已经按好了,应该是要重启一次的,会有提示。

接着再运行一下:

nvidia-smi

安装Python3.5.2版本和pip3

sudo apt install python3-pip

从清华大学开源镜像网安装tensorflow-gpu1.3.0

pip3 install https://mirrors.tuna.tsinghua.edu.cn/tensorflow/linux/gpu/tensorflow_gpu-1.3.0-cp35-cp35m-linux_x86_64.whl

运行Python的TensorFlow测试代码

import tensorflow as tf
import numpy as np
hello=tf.constant('luyanjie')
sess=tf.Session()
print (sess.run(hello))

出现GPU的信息则安装成功

其中遇到的错误

1,安装完CUDA后重启,一直循环进入登录界面,这时意味着你要卸载原有的显卡驱动,重新安装

进tty:Ctrl+Alt+F3

关闭X:

sudo service lightdm stop

然后卸载之前可能存在的驱动:

sudo apt-get --purge remove nvidia*

只需一条命令

sudo apt-get install nvidia-

有人问上面那条命令没写完啊,其实就是写这么多,然后猛击tab键两次(也可以轻点),下面就会出来许多版本的驱动,当然是安装一个版本最高的,例如

sudo apt-get install nvidia-352

即可。

sudo reboot

2,提示内核错误

The driverinstallation is unable to locate the kernel source. Please make surethat the kernel source packages are installed and set up correctly.If you know that the kernel source packages are installed and set upcorrectly, you may pass the location of the kernel source with the'--kernel-source-path' flag.

经过google和百度,得知原因很简单:cuda9.1和 ubuntu16.04中linux内核4.13不兼容!


好吧,看来内核4.13.0不能用,要换成4.4.0。

更换内核

linux更换内核很简单,一个系统中可以安装多个内核,也可以在开机的时候通过grub来选择要启动的内核。首先我们要做的是先看自己系统中现在存在几个内核。

提前了解

使用uname -r查看当前使用的内核。

然后我们明确几个有关内核的文件:

  • /etc/default/grub 定义了有关启动过程的一系列设置,比如设置内核启动顺序、系统等待启动时间、或者启动过程中相关设置等;
  • /boot/grub/grub.cfg 注意一下这个文件是由上一个文件而自动生成的,不建议修改这个文件的内容
  • /etc/grub.d 是操作系统菜单目录,也是由系统生成,我们也不用修改。

更换方法

我当前的内核是4.13.0,我要安装4.4.0的内核,使用下面的命令:

sudo apt-get install linux-headers-4.4.0-98-generic linux-image-4.4.0-98-generic

执行完这个命令之后,可以到/boot/grub中看现在存在的kernels

安装完新的内核后,更换到新的内核(并不是新版本,我就是从4.13转为4.4)的方法:

  • 进入grub启动界面,在系统启动时按住shift一段时间即可,选择你刚才安装的内核即可(每次都要这样选,有点麻烦)。
  • 查看当前内核启动顺序grep menuentry /boot/grub/grub.cfg,然后修改/etc/default/grub中的内容修改GRUB_DEFAULT,默认为0,根据顺序改成你要启动的内核顺序就行(从0开始)。
  • 第二个方法有可能失败,终极方法是删除掉所有多余内核!直接修改/boot/grub/grub.cfg中的内容:在/boot/grub目录中,执行sudo rm -rf *4.13.0-38*这个命令是删除掉这个目录内所有4.13内核的文件,然后将/boot/grub/grub.cfg中所有有关4.13的信息全部删除。全部给为新的内核。
    修改/etc/default/grub中GRUB_DEFAULT=”Ubuntu,Linux 4.4.0-98-generic“

最后弄完别忘了执行sudo update-grub来对你之前的设置进行更新。

如有问题,请咨询我的qq:1290851757,备注:csdn博客问问题的

玩玩机器学习1——ubuntu16.04 64位安装TensorFlow GPU+python3+cuda8.0+cudnn8.0相关推荐

  1. win7 64位 安装tensorflow GPU版本

    近日终于在win7上安装成功tensorflow GPU版本,并测试成功!这里将其中遇到的种种问题和解决方法做下记录,以供大家相互交流!   电脑配置:16G内存:处理器: AMD Athlon(tm ...

  2. ubuntu16.04 64位安装HTS-2.3(包括前端配置)【待更】

    跟着大家的博客走,会出现不太适合自己的步骤,然后报不太想要看见的错误== 所以最后还是老老实实按INSTALL走 准备 - HTK-3.4.1.tar(tar或者tar.gz压缩方式不一样而已) - ...

  3. Ubuntu16.04(64位)下安装和破解source insight4

    破解文件如下: https://pan.baidu.com/s/1i5qtbJv 首先 apt-get install wine 然后 winetricks wininet 然后下载sourceins ...

  4. linux实用技巧:ubuntu16.04 64位系统安装32位系统兼容包并修改dash(缺省)为bash

    需求 ubuntu16.04 64位系统安装32位系统兼容包并修改dash(缺省)为bash 命令行操作 在linux系统安装32位兼容包:         sudo apt-get install ...

  5. Ubuntu 16.04 64位+Qt 5.7.1+opencv 3.2.0 + opencv_contrib 3.2.0

    Ubuntu 16.04 64位+Qt 5.7.1+opencv 3.2.0 + opencv_contrib 3.2.0 author@jason_ql http://blog.csdn.net/l ...

  6. Ubuntu 14.04 64 位安装 Google 的 TensorFlow

    今天来说一下机器学习库 TensorFlow 的在 Ubuntu14.04 64位下的安装. 更新 这里我会列出对本文的更新. 2017 年 10 月 13 日: 优化排版,与其他博文保持统一. 去掉 ...

  7. Ubuntu12.04 64位安装qq

    今天安装qq走了不少弯路 1.WebQQ 放弃吧,一点都不好用,还占用资源 2.wineqq放弃吧,今天是2015.4.19,wineqq只有2013版的,已经过旧无法使用了,害的我下了一堆的win库 ...

  8. Ubuntu 14.04 64位安装32位兼容包

    问题描述 我的操作系统是64bit版的Ubuntu 14.04,很多32bit的软件无法安装使用,因此希望通过安装32位兼容包解决. 安装过程 在Ubuntu 13.10之前,可以通过安装 ia32- ...

  9. win10 64位 安装TensorFlow

    .由于之前安装的是python2.7 ,tensorflow在windows下必须要python3 网上查了一下有三种方法2版本共存 1.不用Anaconda windows 安装python2 与p ...

最新文章

  1. LabVIEW基础培训
  2. 谷歌研究院出品:高效 Transformer 模型最新综述
  3. yolov5检测完不显示框和标注
  4. 学python需要什么基础知识-Python的学习,都需要具备哪些计算机基础知识?
  5. 树莓派:django,uwsgi,nginx安装与设置
  6. Linux 命令之 who -- 打印当前登录用户/显示目前登入系统的用户信息。
  7. npm dev run 报错
  8. 耍了一下 UncaughtErrorEvents
  9. html5支持多线程,html5 多线程
  10. python请编写程序、生成随机密码_利用Python如何生成随机密码
  11. SSE图像算法优化系列十八:三次卷积插值的进一步SSE优化。
  12. 微信支付分使用用户数超2.4亿 每日使用笔数达千万级
  13. ansys 内聚力模型_《ANSYS Workbench有限元分析实例详解(静力学)》,9787115446312
  14. Jenkins系列四通过脚本方式部署maven项目,maven聚合项目,前端VUE的springboot项目
  15. 利用python在word文档中查找关键字(支持多个文档和多个关键字)
  16. kmp算法题全套svp版
  17. 麒麟KY-RTI分布仿真技术:第三章 KY-OMT对象模型模板工具
  18. 联发科:心态决定未来走势
  19. 测相伪距观测方程、线性组合
  20. 【MATLAB】进阶绘图 ( Pie Chart 饼图 | pie 函数 | 三维饼图 | pie3 函数 )

热门文章

  1. cobbler介绍与部署
  2. iBatis——执行原理
  3. 【干货】分享总结:MySQL数据一致性
  4. TYVJ P1030 乳草的入侵 Label:跳马问题
  5. MAVEN 私有仓库库迁移
  6. 1593: [Usaco2008 Feb]Hotel 旅馆
  7. android的消息队列机制
  8. flex白板之图形绘制函数
  9. 计算机一级考试word题主要,2017年计算机一级考试word题及答案
  10. c ++查找字符串_C ++类和对象| 查找输出程序| 套装3