深度学习环境搭建:Tensorflow1.4.0+Ubuntu16.04+Python3.5+Cuda8.0+Cudnn6.0_weixin_30420305的博客-程序员秘密

深度学习环境搭建:Tensorflow1.4.0+Ubuntu16.04+Python3.5+Cuda8.0+Cudnn6.0

Reference


https://zhuanlan.zhihu.com/p/31430631?utm_source=com.tencent.tim&utm_medium=social&utm_oi=1002237860644270080

硬件说明:


显卡:gtx-1080,8G显存

NVIDIA Corporation Device 1b80

软件准备:


深度学习环境必须适配,不能版本之间必须匹配,这些库之间有依赖关系。

我的环境用的是:

  1. ubuntu 16.04
  2. Python3.5 # tensorflow无法完全支持3.6版本的,3.5比较稳定
  3. Cuda8.0 # 目前Ubuntu16.04对cuda8.0的版本支持较好,同时Tensorflow对cuda9.0不太友好,因此我们选择Cuda8.0
  4. Cudnn6.0
  5. Tensorflow1.4.0

1. 安装Ubuntu16.04

从Ubuntu官网下载镜像,并用U盘安装。

安装完成之后更新系统。

sudo apt-get update 
sudo apt-get upgrade

2. 安装显卡驱动

可以参考https://www.cnblogs.com/pprp/p/9430836.html

亲测可用,但是需要注意需要去英伟达官网下载适合自己电脑的版本(nvidia网页可以自己测出你的电脑所需要的型号),具体安装过程参考以上博客。

重启电脑,通过nvidia-smi命令查看驱动信息,如果成功显示,那么驱动安装成功

3.安装Cuda8.0

从NVIDIA官网https://developer.nvidia.com/cuda-release-candidate-download下载适合的CUDA版本,目前官网最新的版本是9.0,但是我非常不建议大家使用最新版本。

img

我们选择linux平台,下载runfile。执行;

sudo ./cuda_8.0.61_375.26_linux.run

我们已经安装好了384,这一步选择n,剩下的一路yes就行。

最后需要配置环境变量,让我们安装的CUDA生效。

(1)打开sudo gedit ~/.bashrc,在最后面添加两行如下:

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

(2)设置环境变量和动态链接库,打开sudo gedit /etc/profile,在文件末尾加入:

export PATH=/usr/local/cuda/bin:$PATH

(3)创建链接文件,打开sudo gedit /etc/ld.so.conf.d/cuda.conf,在文件中添加:

/usr/local/cuda/lib64

最后执行 sudo ldconfig,使上述设置立即生效。

测试CUDA:

执行以下命令:

cd ~/NVIDIA_CUDA-8.0_Samples/1_Utilities/deviceQuery

make

./deviceQuery

可以看到详细信息,最后结果是Pass,则CUDA安装成功,否则就是哪里有问题(利用Google和百度解决)。

4. 安装Cudnn6.0

在NIVIDA开发者官网上,找到cudnn的下载页面: https://developer.nvidia.com/rdp/cudnn-download ,选择"Download cuDNN v6.0 (April 27, 2017), for CUDA 8.0" 中的 "cuDNN v6.0 Library for Linux":

img

下载后安装非常简单,就是解压然后拷贝到相应的系统CUDA路径下:

tar -zxvf cudnn-8.0-linux-x64-v6.0.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

or

sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local

5. 清华源安装Anaconda

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

将一下源加入,可以加速

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

建议选择Anaconda3-4.2.0-Linux-x86_64.sh(版本4.2)进行安装,因为支持python3.5,通过命令chmod +x Anaconda3-4.2.0-Linux-x86_64.sh & ./Anaconda3-4.2.0-Linux-x86_64.sh就可以进行安装,安装过程按照提示来就可以,比较简单。

6. 安装tensorflow

参考官网:https://www.tensorflow.org/install/install_linux?hl=zh-cn#InstallingAnaconda

首先创建一个anaconda虚拟环境:

conda create -n tensorflow python=3.5

通过发出以下命令激活 conda 环境:

source activate tensorflow

发出以下格式的命令以在 conda 环境中安装 TensorFlow:

pip install --ignore-installed --upgrade tensorflow-gpu==1.4.0

7. 验证您的安装

运行一个简短的 TensorFlow 程序

从 shell 中调用 Python,如下所示:

$ python

在 Python 交互式 shell 中输入以下几行简短的程序代码:

# Python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

如果系统输出以下内容,说明您可以开始编写 TensorFlow 程序了:

Hello, TensorFlow!

如果系统输出一条错误消息而不是问候语,请参阅常见的安装问题

8. 卸载cudnn5.1升级为cudnn6.0

1、解压出一个名为cuda的文件夹,文件夹中有include和lib64两个文件夹
2、删除原来的cudnn

sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*12

3、安装安装需要版本的cudnn,在终端cd到刚解压的cuda文件夹

sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/lib* /usr/local/cuda/lib64/12

4、cd到/usr/local/cuda/lib64/文件夹下,建立软链接(注意版本号换成你自己的)

sudo chmod +r libcudnn.so.5.0.5  
sudo ln -sf libcudnn.so.5.0.5 libcudnn.so.5  
sudo ln -sf libcudnn.so.5 libcudnn.so  
sudo ldconfig  1234

5、检测

cd /usr/local/cuda/lib64/
ll12

cudnn版本更新完毕

转载于:https://www.cnblogs.com/pprp/p/9463974.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30420305/article/details/94908926

智能推荐

最优二叉搜索树动态规划_jiyang_1的博客-程序员秘密

问题描述:最优二叉搜索树问题是对于有序集S及其存取概率或权值(q0,p1,q1,p2,q2,p3,q3),在所有表示有序集S的二叉搜索树中找出一颗具有最小平均路长的二叉搜索树。解决方法:使用动态规划方法自底向上逐步构造最优二叉搜索树。动态规划的两个重要要素是:1、最优子结构。2、重叠子问题。1)所谓最优化子结构是说若问题的一个最优解中包含了子问题的最优解,则该问题具有最

mybatis-从前端页面显示数据_旺仔碎碎的博客-程序员秘密

第一步骤:1.File->New project->选择Spring Initializr2.选择8版本3.添加我们需要的第二步:1.修改pom文件 在其中添加dependence <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spr

R语言-data.table包用来加速大型数据集的加载和运算_r语言百万数据处理_Nh_code的博客-程序员秘密

R语言data.table包是自带包data.frame的升级版,用于数据框格式数据的处理,最大的特点是快。它内部处理的步骤进行了程序上的优化,使用多线程,还有很多C编写的函数,大大加快数据运行速度。尤其当对一两百万甚至更大数据集进行修改或运算时,由于data.table直接对数据本身做运算,不创建副本,因此相较于基本的data.frame格式,data.table在面对大型数据集时,进行聚合排序以及分组运算的性能非常高 !............

携程网络防火墙自动化运维_lowtech的博客-程序员秘密

作者简介:田国华,携程高级网络安全经理,14年网络安全行业工作经验。2010年加入携程网站运营中心,负责携程技术安全体系建设,包括网络安全架构规划设计、安全方案、产品评估及安全系统运维管理工作。 声明:本文为CSDN投稿文章,未经许可,禁止任何形式的转载。随着互联网技术的不断发展,在线网站的规模越来越大,防火墙作为网站的安全屏障,被大量的使用。防火墙数量的增加以及防火墙中安全策略条目...

给90后的一个建议_weixin_33726943的博客-程序员秘密

很长时间没有写东西了,今天看到90后程序员工作经历的文章让我感触不小,结合自己最近遇到的事情,就把自己想的一些东西写出来,供大家一起探讨。说实话,16岁初中毕业出来工作的人不少,但是16岁就从事软件开发的确实比较少见,我很佩服这个好伙子的能力(估计这么叫着,因为自己也说,16岁就是成年了)。不过我并不希望看到太多得这样年轻,即便他们是天才,在这个年龄是...

中木马了(续)_weixin_33965305的博客-程序员秘密

      上次说到中木马后把电脑带到公司,让同事帮忙处理了下,回来再没在system32下发现可疑文件夹,还以为从此就一劳永逸了。可是,情况似乎并不是我想象的那么乐观。     今天每次开机后,打开IceSword查看端口状态,总是发现有一个TCP连接连向一个IP,查了下那IP是扬州的(当时我还暗想这是不是跟博客园的cookies有关呢,dudu不是扬州的吗,汗),进程程序名称那显示的是sv...

随便推点

使用tornado让你的请求异步非阻塞_harleylau的博客-程序员秘密

####前言也许有同学很迷惑:tornado不是标榜异步非阻塞解决10K问题的嘛?但是我却发现不是torando不好,而是你用错了.比如最近发现一个事情:某网站打开页面很慢,服务器cpu/内存都正常.网络状态也良好.后来发现,打开页面会有很多请求后端数据库的访问,有一个mongodb的数据库业务api的rest服务.但是它的tornado却用错了,一步步的来研究问题:####说明以

jws jax-ws jax-rs jaxb cxf axis2 关系_n369497017的博客-程序员秘密

JWS:是指与webservice相关的J2EE(其实现在应该叫做Java EE吧)技术叫做JWS(全称就是java webservice)。    简要说一下 JAX-WS 和JAX-RS        JAX-WS全称是JavaTM API for XML-Based Web Services         JAX-RS :全称是  JavaTM API for RESTfu

android 11.0 12.0Launcher3禁止拖动图标到Hotseat_安卓兼职framework应用工程师的博客-程序员秘密

在11.0 12.0系统Launcher3进行定制化开发中,对于hotseat的开发中,由功能需求要求禁止拖动图标到Hotseat的功能,而拖拽也是在workspace.java中处理的接下来就从workspace.java 开始找解决的办法。

Vue.js 安装_早上起来要吃饭的博客-程序员秘密

1、独立版本我们可以在 Vue.js 的官网上直接下载 vue.min.js 并用<>标签引入。下载 Vue.js2、使用 CDN 方法以下推荐国外比较稳定的两个 CDN,国内还没发现哪一家比较好,目前还是建议下载到本地。BootCDN(国内): https://cdn.bootcss.com/vue/2.2.2/vue.min.jsunpkg:https://unpkg.com/vue/dist/vue.js, 会保持和 npm 发布的最新的版本一致。cdnj...

容器与容器云——Docker容器资源管控_容器云资源分配_Kevin Graham的博客-程序员秘密

Docker对网络资源的控制docker network ls #查看docker网络信息[[email protected] ~]# docker network lsNETWORK ID NAME DRIVER SCOPE2e0728405ba4 bridge bridge ...

python将Excel文件内容导入Mysql数据_weixin_30826761的博客-程序员秘密

为了方便起见,将所有字段类型设置为str,理解mysql的语法这个玩意贼简单# _*_ coding:utf-8 _*_import pandas as pd #先装个pandas ,pip install pandasimport pymysql#读入数据库filename='F:\pycharm\sales.xls' #本地需要导入数据库的文件data=pd.read_exce...

推荐文章

热门文章

相关标签