文章在简书里面编辑的,复制过来貌似不太好看,还是到简书的页面看吧:

http://www.jianshu.com/p/c89b97d052b7

1.安装环境简介:

硬件:

  1. cpu:i7 6700k
  2. gpu:gtx 1070
  3. 内存:32g

系统:Ubuntu 14.04

  • 安装在一块移动硬盘上为啥不装双系统呢?不爽!移动硬盘上装Ubuntu的一个坑是装之前需要确认你的盘是否是4k对齐。你不确认也行,反正它死活都不让你装~。
  • 系统语言选的是English,不推荐中文,在shell里面输入中文路径是一件万分不爽的事儿。
  • 环境就这样,很纯洁

注意:此时我的显示屏连接线是连在主板上的,因为系统刚装好gpu还没有驱动。

正式安装之前请先看一下cuda开发库的支持信息。Ubuntu14.04装完不用干啥,满足要求。

2.装显卡驱动

恩,虽然我一直以官方文档为准。但是装这个驱动,算了,还是参考先驱的经验吧。以下三个链接,第一个链接是官网的文档,我主要参考第二个和第三个。

(1)https://docs.nvidia.com/deploy/driver-persistence/index.html

(2)http://wxhp.org/ubuntu-install-nvidia-official-drivers.html

(3)http://wiki.ubuntu.org.cn/NVIDIA

  • 参照第二个链接安装过程中出现提示说:将要安装程序为32位,将不安装任何东西balalala...(-_- || 吓死宝宝了,不管了继续吧)。安装过程一路yes,没有碰见说要从网上下载modules的那个提示,所以就没有选no。安装完了之后,pa~提示:kernel Error ...balabala....(|_| 感觉世界没有爱了,花了那么长时间换来的就是全特么是error)。
  • 安装完了,sudo start lightdm(心如死灰),输入登录密码,果然~~还是跳回了登录界面。谷歌ubuntu输入密码返回登录界面,按照排名靠前的几个解决方案看了看,完全没什么卵用,因为我的文件权限和所属用户、用户组都是正确的。好吧,,,还是去查看启动日志吧~
  • 查看cat ~/.xsession-errors,错误提示说:gnome session 启动失败。这是什么鬼提示嘛,还是没什么卵用。只知道gnome这个东西没起来。捋一捋系统启动流程,想到gnome是个桌面管理程序,既然我在其他run level里面能够成功使用账户名密码登录,说明起码系统没坏,在这个gnome程序里面却进不去,是不是gnome在启动什么东西的时候失败了,联想到我之前卸了旧驱动,装了显卡新驱动,而且我把显示器的HDMI插头接到了主机的主板上,不是显卡上的HDMI接口。OK,猜想:是不是gnome想要启动显示器,但是呢系统现在默认使用的gragphic是NVIDIA,我却把HDMI插头接口放在了intel集成显卡的接口上,而intel集成显卡又没启用,所以失败了。。。死马当活马医,关机,换到NVIDIA插口上,启动,输入密码~~~~艾玛,进去了。
  • 在换插口前我还运行了两条命令

    sudo apt-get --purge remove nvidia-* sudo apt-get --purge remove xserver-xorg-video-nouveau

    这两条命令运行完之后,我还是没法登录进系统。我粗略看了下执行是显示的内容,貌似没有卸载啥东西。所以就不知道我运行的这两条命令将来会产生什么影响,反正现在是进系统了,下一步准备安装cuda7.5和cuDnn。

    2016.10.08

3.安装cuda7.5(可跳过此部分,这是本安装记录的旧版本)

环境检查(给予Ubuntu,其他系统环境查看这里的说明)


2016年11月19日


  • 一个多月过去了,之前驱动装完就放下了。刚开始其实不用一定非得要装gpu版本的,在虚拟机里面装了个cpu版本的做做实验也OK。看了一些神经网络相关的论文,做了些实验后,现在觉得虚拟机不够用了。这才回来安装GPU版本的tensorflow。

  • 一个多月,tensorflow官网已经默认支持最新的cuda toolkit 8.0,而且window平台也开始逐步支持了。废话不多说,开始吧~


4.安装cuda8.0

此部分内容与第三步同样是按照官网的教程使用的。官网文档请走这里

官方文档里面包含九个章节,分别是:

  1. 引入
  2. 装前检查,确定依赖环境等
  3. 安装包管理
  4. 安装文件
  5. 交叉平台安装(目前只支持Ubuntu)
  6. 安装后注意事项
  7. 高级设置
  8. 常见问题
  9. 其他注意事项

黑体部分为本安装记录会涉及到的,其他部分如有需要自取。

  1. 装前检查,确定依赖环境等

    相关命令:
lspci | grep -i nvidia
uname -m && cat /etc/*release
gcc --version
uname -r
sudo apt-get install linux-headers-$(uname -r)

1.1 安装与内核版本一致的相关包

相关命令:sudo apt-get install linux-headers-$(uname -r)

ps: 参考官方文档的2.1~2.4 , 2.7节

4.安装文件

安装文件可选方式有两种,一种是distribution-specific packages安装包,一种是distribution-independent package。有啥区别呢?就是后一种是.sh结尾的文件,可以在一些不常用的Linux平台上安装,但是包管理器可能不支持更新升级,安装起来也比较麻烦。前一种可以通过包管理器本地安装或在线安装,安装升级方便。在官网下载的时候就能看到下载包的区别,如下图所示,第一个runfile个人不建议下载安装。下载第二个安装。

下载好后改变bash路径到cuda-repo-.deb文件所在的目录,然后依次执行如下命令

sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
sudo apt-get update
sudo apt-get install cuda

一切都很顺溜~~注意第一条命令不要直接复制就运行了,替换成你下载的文件名。

ps: 参考官方文档的2.5,3.6节

6.安装后注意事项

6.1 把路径/usr/local/cuda-8.0/bin加到环境变量中去。

在/etc/profile 文件的末尾加了如下语句:

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

保存后别忘了source /etc/profile一下。

6.2 安装cuda的测试脚本

cuda-install-samples-8.0.sh <dir> 为一个当前用户具有读写权限的目录,我运行的命令如下:cuda-install-samples-8.0.sh ~

看一下当前目录,多了个NVIDIA_CUDA-8.0_Samples的文件夹

6.3 编译例子程序测试是否安装成功

把当前目录切换到刚才那个目录文件下

cd ~/NVIDIA_CUDA-8.0_Samples

再执行命令

make

哗啦哗啦~好多输出。这时候你再开一个shell窗口,切换到目录~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release

看看文件数量是不是在增长,可以通过如下命令统计当前目录文件数量ll | wc -l。我编译完成后一共是160个文件。

6.4 运行编译后的二进制文件

  • 切换到目录~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release下,运行如下脚本./deviceQuery。运行结果什么呢?失败反正我安装完后执行这个脚本是失败了,失败的界面没截图~我就不重现它了。

    我没有急着卸载重装,回想所有安装步骤都没问题,于是有了终极解决方案:**重启~**。对,没看错就是重启重启一下运行刚才这个命令会出现如下所示界面,恭喜你成功了~



上图中主要看两个地方,一个是看有没有检测到你的显卡,也就是Device 0: "GeForce GTX 1070"的那一行。还有就是最后一行Result = PASS

  • 再运行一个测试脚本``

PS:出错的时候网上查了下,有人说不要使用deb的文件安装。但是一想毕竟按照官方文档一步一步下来没有错,我也不想再折腾。开始想看一下是不是源码有问题,粗略看了下,好像没啥问题(其实是看不懂),重启就是死马当活马医~

ps: 本节参考了原文的6.1.1 , 6.2.1 , 6.2.2.2 和 6.2.2.3小节。


5.安装cuDNN v5

这个最简单,按照tensorflow官网的教程来就行,不用按照cuDnn的文档来。

  1. 下载cudnn

    https://developer.nvidia.com/cudnn
  2. 把压缩文件解压到cuda toolkit的安装目录,默认是/usr/local/cuda。首先把当前目录切换到/usr/local/cuda,然后运行如下相关命令:
tar xvzf cudnn-8.0-linux-x64-v5.1-ga.tgz
sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

6.tensorflow安装方式

我基本上所有方式都尝试过了,这次我选择anaconda的安装方式。

  1. anaconda官网下载:https://www.continuum.io/downloads

    我选的是python3.5 64位的Linux版本

    下载好后,用命令bash bash Anaconda3-4.2.0-Linux-x86_64.sh 装就好了。

    中间要你输入enter就敲一下回车,遇到more的时候就按空格键,遇到选yes或no,统统选yes就好。

    装完之后,记得要么重启一下,要么shell里面运行source ~/.bashrc就好。然后输入which python看一下路径中是不是包含在anaconda的安装目录,是就对了。

哦对了,你会发现如果你运行sudo python的时候,还是用的系统自带的python。解决办法嘛可以重建默认python的软连接到anaconda里面的python。也可以编辑/etc/profile,把anaconda的bin目录加到path里面去。

2.安装tensorflow

直接上命令清单,一行一行运行就好。有特殊需求找官网去。

conda create -n tensorflow python=3.5
source activate tensorflow
export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.0rc0-cp35-cp35m-linux_x86_64.whl
pip install --ignore-installed --upgrade $TF_BINARY_URL

注意最后一行和官网不一样,官网是pip3 install --ignore-installed --upgrade $TF_BINARY_URL。它用的是pip3,我没装上,换成pip就好。细心的话会发先不是python2.x采用pip么?你装的python3.5怎么用pip呢?我也,不知道,反正就是装上了~python的库基本上都支持python3了,估计也没必要搞个pip3了。

7. 运行点代码试试

输入图片中红色框住的或指向的就行,其他的忽略。目的就是计算一个e的5次方。

8. 其他

shell窗口使用的是terminal,窗口多开,调节大小挺方便的。

git+pycharm+anaconda+jupyter

关于pycharm设置什么远程调试啊,代码部署啊什么的,如果有需要,回头再写。

完事儿~~

ubuntu14.04+nvidia driver+cuda8+cudnn5+tensorflow0.12的更多相关文章

  1. Ubuntu14.04下安装Cuda8.0

    https://blog.csdn.net/sinat_19628145/article/details/60475696 https://developer.nvidia.com/cuda-down ...

  2. faster-rcnn(testing): ubuntu14.04+caffe+cuda7.5+cudnn5.1.3+opencv3.0+matlabR2014a环境搭建记录

    python版本的faster-rcnn见我的另一篇博客: py-faster-rcnn(running the demo): ubuntu14.04+caffe+cuda7.5+cudnn5.1.3 ...

  3. py-faster-rcnn(running the demo): ubuntu14.04+caffe+cuda7.5+cudnn5.1.3+python2.7环境搭建记录

    第一次写博客,以此纪念这几天安装caffe,跑faster-rcnn的血泪史.在此特别感谢网络各路大神,来自全球各地,让我能从中汲取营养,吸取经验,总结规律. faster-rcnn分为matlab版 ...

  4. Ubuntu 18.04 nvidia driver 390.48 安装 TensorFlow 1.12.0 和 PyTorch 1.0.0 详细教程

    最近要在个人台式机上搭建TensorFlow和PyTorch运行环境,期间遇到了一些问题.这里就把解决的过程记录下来,同时也可以作为安装上述环境的过程记录. 如果没有遇到类似的问题,想直接从零安装上述 ...

  5. Ubuntu14.04安装和配置Tomcat8.0.12(转)

    Ubuntu14.04长的好看,所以一时间很感兴趣,研究各种软件的安装和开发环境的配置.今天先把安装的tomcat 8.0.12的教程分享给大家.如果你需要,请收藏!!!   工具/原料 系统环境:U ...

  6. Ubuntu14.04安装和配置Tomcat8.0.12

    Ubuntu14.04长的好看,所以一时间很感兴趣,研究各种软件的安装和开发环境的配置.今天先把安装的tomcat 8.0.12的教程分享给大家.如果你需要,请收藏!!!   官方网站下载最新的tom ...

  7. ubuntu14.04 flash driver 安装

    直接将14.04镜像直接放到flash driver 中 然后在bios设置flash driver 优先启动 然后格出一块盘给ubuntu 安装使用 按操作要求一路点下去就可以,记得选windows ...

  8. Ubuntu14.04下安装tomcat

    1.官方网站下载最新的tomcat:http://tomcat.apache.org/download-80.cgi在ubuntu上,我们下载zip和tar.gz.Ubuntu14.04安装和配置To ...

  9. ubuntu14.04安装、NVIDIA显卡驱动安装及CUDA8.0、Cudnn5.1的环境搭建

    安装环境:hp-Z440工作站.64位Ubuntu14.04(64位Ubuntu16.04).Cuda8.0.Cudnn5.1.Nvidia GeForce GT 705.Tesla K40c 本文可 ...

随机推荐

  1. js中typeof和instanceof

    对于typeof和instanceof,我们经常用来检测数据的类型.typeof可以检测Number.Boolean.String.Undefined类型,对于其他类型的数据都返回为object:而i ...

  2. lua获取时间

    更多好的文章就在 blog.haoitsoft.com,请大家多多支持! local getTime = os.date("%c"); 其中的%c可以是以下的一种:(注意大小写) ...

  3. .Net Framework认知

    在托管代码的世界里,应用程序首先被加载到应用程序域(AppDomain)中,然后将应用程序域加载到进程中,一个进程可以包含多个应用程序域,也就是说一个进程可以包含多个应用程序,毕竟应用程序域之间的切换 ...

  4. mac 下设置jdk 路径,设置hadoop 路径

    1. touch ~/.bash_profile  创建一个文件 2.vim ~/.bash_profile JAVA_HOME=/Library/Java/JavaVirtualMachines/j ...

  5. 报错注入分析之updatexml注入

    PS:今天元旦,家里打来电话说,今年春节要回老家.心里倍感恐惧.可以清楚的感觉得到父母说话的气息没有底气.大概如同我一样是恐惧吧.加油吧!努力赚钱! 先丢一篇很不错的文章:http://www.moo ...

  6. Laravel 安装代码智能提示扩展「laravel-ide-helper」

    ========================laravel-ide-helper======================== 使用 Laravel 框架IDE居然没有智能提示?这感觉实在太糟糕 ...

  7. 爬虫 htmlUnit遇到Cannot locate declared field class org.apache.http.impl.client.HttpClientBuilder.dnsResolve错误

    当在使用htmlUnit时遇到无法定位org.apache.http.impl.client.HttpClientBuilder.dnsResolver类时,此时所需要的依赖包为: <depen ...

  8. amazeui折叠面板智能化展开

    2016年12月12日 21:05:18 星期一 场景: 我拿这个组件用作管理后台的侧边栏 效果: 根据当前访问的url不同, 展开不同的面板 amazeui折叠面板 js代码: <script ...

  9. 遍历list、set、map和array

    public static void main(String[] args) { /*1. List*/ ArrayList<Integer> list = new ArrayList&l ...

  10. 利用代码添加autolayout约束

    1.概述 通常我们通过storyboard能够完成的,代码也能够完成,所以这里介绍下代码实现约束的添加,通常我们不这么干(在不使用第三方框架的情况下,使用系统自带的类添加约束特别繁琐),所以这里仅仅简 ...