ubuntu16.04+七彩虹GTX1060的NVIDIA驱动+Cuda8.0+cudnn5.1+tensorflow+keras搭建深度学习环境【学习笔记】【原创】...

本文主要是介绍ubuntu16.04+七彩虹GTX1060的NVIDIA驱动+Cuda8.0+cudnn5.1+tensorflow+keras搭建深度学习环境【学习笔记】【原创】...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

平台信息:
PC:ubuntu16.04、i5、七彩虹GTX1060显卡

作者:庄泽彬(欢迎转载,请注明作者)

说明:参考了网上的一堆的资料搭建了深度学习的开发环境,下班在宿舍折腾了好几个晚上才搞定,写篇文章记录一下。

一、安装Nvidia GTX1060显卡驱动

  1.1 图1是本人使用的显卡,暂时没有那么多钱,买个便宜的玩玩,把显卡插入电脑主板,然后开启ubuntu系统,

  

图1

  1.2 在终端输入lspci |grep VGA查看显卡型号,ubuntu系统自带了nouveau驱动,因此我们启动系统之后可以识别到显卡,但这毕竟不是GTX1060专用的显卡驱动,我们不能使用这个驱动要屏蔽这个显卡驱动,安装NVIDIA GTX1060显卡驱动,我们在看看图3现在系统使用的是CPU集成显卡,没有使用我们的独立显卡,我们要切换到我们的GTX1060显卡.

 

 图2

图3

  1.3 在终端输入sudo ubuntu-drivers devices查看自己的系统适合安装什么版本的显卡驱动,当然也可以下载最新的,这里自己选择,本人选择系统推荐的版本nvidia-384

  图4

  到这里链接下载对应型号的显卡驱动:https://www.geforce.cn/drivers,设置见图5,之后点击开始搜索,在搜索结果中选择自己下载的显卡驱动版本

 

搜索结果

图5

   1.4

  在正式安装之前执行先卸载原有的显卡驱动:

  sudo apt-get remove --purge nvidia*

  禁止nouveau:

  sudo vim /etc/modprobe.d/blacklist.conf

  在这个文件最后添加:

  blacklist nouveau  

  之后执行sudo update-initramfs -u重启系统

  在终端输入lsmod | grep no如何没有输出信息证明系统没有加载nouveau驱动,可以进行一下步的操作。

  

  1.5 安装驱动:

  添加可执行权限:

  sudo chmod a+x NVIDIA-Linux-x86_64-384.130.run

  关闭图形化环境:

  进入控制台模式:ctrl+alt+f1,

  sudo /etc/init.d/lightdm stop

  正式安装:

  sudo ./NVIDIA-Linux-x86_64-384.130.run -no-x-check -no-nouveau-check -no-opengl-files

  执行完之后竟然跳出这个界面图6这个界面,后找了一下资料,其实出现这个界面是正常的,只是NVIDIA的人提醒你是否要进行安装,可以看看 /usr/lib/nvidia/pre-install这个文件的内容图7,其实没有做什么就退出,所以出现图6的界面不用担心,继续执行就好了啊。

  

 图6

  

 

图7

 

  在安装的过程会出现的选项:

 Install NVIDIA's 32-bit compatibility libraries?本人选择yes

 Would you like to run the nvidia-xconfig utility to automatically update your X configuration file so that the NVIDIA X driver will be used when you 

    restart X? Any pre-existing X configuration file will be backed up.  本人选择NO

 等待安装完毕之后执行

 sudo /etc/init.d/lightdm start 恢复图形界面

 查看显卡驱动版本:从图8可以看出我们安装GTX1060显卡驱动已经搞定了,但是我们系统现在使用的还是图3所示的集成显卡,我们安装完cuda8.0之后就能切换过去,因此革命尚未成功仍需nvli 

 cat /proc/driver/nvidia/version

 nvidia-smi 

    

图8

 如果需要升级版本卸载:sudo ./NVIDIA-Linux-x86_64-384.130.run  --uninstall

  

 二、安装cuda8.0

  2.1下载cuda8.0的下载链接:https://developer.nvidia.com/cuda-80-ga2-download-archive,本人的下载设置见图9,之后点击下载,需要注意的是CUDA包括了CPU计算库和显卡驱动,因此在安装的时候不要重复安装显卡驱动,不然前面装了那么久GTX1060显卡驱动就白装了啊。

  

 

图9

  2.2、安装cuda8.0

  设置可执行权限

  sudo chmod a+x cuda_8.0.61_375.26_linux.run

  执行安装:

  安装过程:

  在刚开始安装的时候会出现一个声明,本人直接回车到100%看完声明,进行安装.  

Do you accept the previously read EULA?
accept/decline/quit: accept

 

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
(y)es/(n)o/(q)uit: n

 

Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y

 

Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]:

 

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

 

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y

 

Enter CUDA Samples Location
[ default is /home/zhuang ]:

 

Installing the CUDA Toolkit in /usr/local/cuda-8.0 ...
Missing recommended library: libXmu.so

 

Installing the CUDA Samples in /home/zhuang ...
Copying samples to /home/zhuang/NVIDIA_CUDA-8.0_Samples now...
Finished copying samples.

  设置cuda8.0到环境变量

  sudo vim /etc/profile

  添加如下内容: 

  export PATH=/usr/local/cuda-8.0/bin:$PATH
  export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64$LD_LIBRARY_PATH

  重启系统:sudo reboot

  输入nvcc -V输出下面信息正常:

图10

 

测试:

cd /home/zhuang/NVIDIA_CUDA-8.0_Samples 

make 

cd 0_Simple/clock  执行简单的测试demo

 

如果需要升级卸载: 

  cd /usr/local/cuda/bin

  sudo ./uninstall_cuda_8.0.pl

若安装的是deb文件使用这种方式卸载:

  sudo apt-get autoremove --purge cuda

 

三、安装cudnn5.1

  3.1 下载链接:https://developer.nvidia.com/rdp/cudnn-archive,下载cudnn5.1需要注册一个NIVDIA账号.下载设置见图10,会得到cudnn-8.0-linux-x64-v5.1.solitairetheme8这个文件.

  

图10

solitairetheme8这个格式的文件太奇怪了处理一下:

sudo cp cudnn-8.0-linux-x64-v5.1.solitairetheme8 cudnn-8.0-linux-x64-v5.1.tgz

解压: 

sudo tar -zxvf ./cudnn-8.0-linux-x64-v5.1.tgz

复制头文件:

cd cuda/include

sudo cp cudnn.h /usr/local/cuda/include

复制库文件:

cd ../lib64/

sudo cp lib* /usr/local/cuda/lib64/

删除系统原有的动态库文件:

cd /usr/local/cuda/lib64/ 

sudo rm -rf libcudnn.so libcudnn.so.5

sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5

sudo ln -s libcudnn.so.5 libcudnn.so

 sudo ldconfig

 

四、安装tensorflow

 下载对应版本的tensorflow:https://pypi.org/project/tensorflow/#files

查看TensorFlow版本:sudo pip show tensorflow

安装和卸载命令:pip install tensorflow_gpu==1.1

sudo pip uninstall tensorflow-gpu

但是运行却包了这个错误:

有强迫症患者的看到这堆警告肯定很不爽,后面上网又找了一遍,我们还是用源码编译的方式安装TensorFlow吧。哎,路还很长,搭建深度学习的开发环境容易啊。

四、安装keras

sudo pip install -U --pre pip setuptools wheel

sudo pip install -U --pre numpy scipy matplotlib scikit-learn scikit-image

 

 pip install keras

转载于:https://www.cnblogs.com/zzb-Dream-90Time/p/9663542.html

这篇关于ubuntu16.04+七彩虹GTX1060的NVIDIA驱动+Cuda8.0+cudnn5.1+tensorflow+keras搭建深度学习环境【学习笔记】【原创】...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/220036

相关文章

C++ 右值引用(rvalue references)与移动语义(move semantics)深度解析

《C++右值引用(rvaluereferences)与移动语义(movesemantics)深度解析》文章主要介绍了C++右值引用和移动语义的设计动机、基本概念、实现方式以及在实际编程中的应用,... 目录一、右值引用(rvalue references)与移动语义(move semantics)设计动机1

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目

SQL 注入攻击(SQL Injection)原理、利用方式与防御策略深度解析

《SQL注入攻击(SQLInjection)原理、利用方式与防御策略深度解析》本文将从SQL注入的基本原理、攻击方式、常见利用手法,到企业级防御方案进行全面讲解,以帮助开发者和安全人员更系统地理解... 目录一、前言二、SQL 注入攻击的基本概念三、SQL 注入常见类型分析1. 基于错误回显的注入(Erro

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

MongoDB搭建过程及单机版部署方法

《MongoDB搭建过程及单机版部署方法》MongoDB是一个灵活、高性能的NoSQL数据库,特别适合快速开发和大规模分布式系统,本文给大家介绍MongoDB搭建过程及单机版部署方法,感兴趣的朋友跟随... 目录前言1️⃣ 核心特点1、文档存储2、无模式(Schema-less)3、高性能4、水平扩展(Sh

Java枚举类型深度详解

《Java枚举类型深度详解》Java的枚举类型(enum)是一种强大的工具,它不仅可以让你的代码更简洁、可读,而且通过类型安全、常量集合、方法重写和接口实现等特性,使得枚举在很多场景下都非常有用,本文... 目录前言1. enum关键字的使用:定义枚举类型什么是枚举类型?如何定义枚举类型?使用枚举类型:2.

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三