初用Linux, 安装Ubuntu16.04+NVIDIA387+CUDA8.0+cudnn5.1+TensorFlow1.0.1

时间:2023-02-12 14:16:40

因为最近Deep Learning十分热门, 装一下TensorFlow学习一下. 本文主要介绍安装流程, 将自己遇到的问题说明出来, 并记录自己如何处理, 原理方面并没有能力解释. 由于本人之前从来没有用过Linux, 本文章恐有初级错误, 望见谅, 谢谢. (本文写于2017年3月17日)

为了能够利用GPU(NVIDIA GTX1080)运行TensorFlow, 根据调查需要按顺序安装以下内容:

Ubuntu, NVIDIA驱动, CUDA, cudnn, TensorFlow

安装Ubuntu16.04

Ubuntu16.04 可以通过官网下载, 并制作成U盘安装. 为了更方便的驱动显卡,直接安装Linux, 并不安装双系统或虚拟机. 安装完毕后, 由于Ubuntu源在国外, 为了更效率得更新, 采用中科大的镜像源. 具体操作为按Ctrl+Alt+T打开命令行, 然后输入:

sudo gedit /etc/apt/sources.list

第一次以管理员运行, 需要输入管理员密码. 然后将内容替换为:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial main main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse # 预发布软件源,不建议启用
# deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

然后更新源和安装包:

sudo apt-get update
sudo apt-get upgrade

*安装界面选择取消选择从网络下载. 即便如此, 在之后的Retriving File中, 也有可能遇到进度条卡死的情况(我是校园网, 需要网络登录), 处理方法是拔掉网线, 待安装完毕后再将网线插回.

安装NVIDIA378.13

安装NVIDIA最新显卡驱动, 从官网输入自己的显卡型号, 点击search, 提示下载显卡驱动为375.39(Release 2017.2.14), 然而在输入自己显卡型号的页面, 选择下方的"Beta and Older Drivers"的连接, 可以选择到378.13. 由于我在用375.39的时候, 之后通过Source方式安装TensorFlow中遇到问题(这里可以先不用管), 搜索得到推荐使用378的型号, 改用378.13的驱动. 将该文件移动到Home目录中, 改名为"NVIDIA.run"

初用Linux, 安装Ubuntu16.04+NVIDIA387+CUDA8.0+cudnn5.1+TensorFlow1.0.1

具体安装方法为: Ctrl+Alt+F1, 进入命令行页面, 输入用户名和密码登录, 首先关闭X Server(我理解是图形界面):

sudo /etc/init.d/lightdm stop

然后运行NVIDIA.run, 进行安装:

sudo sh NVIDIA.run # 注意此时文件已在Home目录下

安装中, 会遇到"The distribution-provided pre-instrall script failed", 可以无视, 继续安装. 但会出现关于Neuveau的问题, 好在NVIDIA会帮你把Neuveau给加到blacklist中, 只需要同意这么做就好, 但此次安装会失败, 退出, 这时需要输入:

sudo update-initramfs -u

然后键入reboot, 重启计算机. 此时的桌面分辨率会降低, 按Ctrl+Alt+F1进入命令行, 管理员登入, 关闭X Server, 然后安装NVIDIA驱动, 过程中会说NVIDIA会把其他X Server给遮蔽掉(大概这么个意思?), 同意即可, 然后便顺利安装. 之后reboot重启即可.

* 如果安装完毕后, 在登录界面循环登录, 即输入密码, 又退回的话, 关闭掉主板的Secret Boot即可.

安装CUDA8.0

官网选择Linux-x86_64-Ubuntu-16.04-Runfile(local), 然后将文件重命名CUDA.run并移动到Home根目录中, 按Ctrl+Alt+T打开命令行, 运行:

sudo sh CUDA.run

一路空格搞到底部, 键入accept同意安装, 之中有些地方需要选择, 除了在询问是否安装:NVIDIA驱动375.xx选否(已经安装了378.13), 其他的都同意并使用默认路径, 即可以完成安装. 最后加入环境变量:

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

再通过以下命令让环境变量生效:

source ~/.bashrc

* 如果在安装CUDA时遇到空间不足的问题, 可以在运行CUDA.run时加入:

sudo sh CUDA.run --tmpdir=/opt/temp/

我个人没有遇到这个问题, 同时如果加入后面的代码, 反而会无法运行.

安装cudnn5.1

下载好的压缩包重命名为cudnn.tgz并移动到Home根目录中, 然后运行命令解压:

tar -zxvf cudnn.tgz

会得到五个文件, 将文件拷贝到对应的CUDA目录下即可:

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*

安装TensorFlow

根据官网, Ubuntu上可以有5种方式, 分别是利用: Virtualenv, "native" pip, Docker, Anaconda, 以及从Source安装. 由于我在通过Source和Virtualenv中最后一步都遇到问题, 使用Anaconda成功安装.

1. 安装Anaconda, 具体可参见Anaconda官网

2. 创建conda环境, 用命令:

conda create -n tensorflow # 若没有conda命令, 则需要export PATH="$PATH:~/anaconda2/bin"加入新的PATH

激活conda环境, 此时您的命令行前多了(tensorflow):

这里是你关于您计算机的名字 $ source activate tensorflow
(tensorflow) 一些关于您计算机的名字 $

安装TensorFlow在conda环境中, 最后的连接是TensorFlow Python Package, 根据需要来选择, 由于我使用GPU, Linux系统, Python2.7, 使用如下命令

(tensorflow)一些关于您计算机的名字$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.0.1-cp27-none-linux_x86_64.whl

安装完毕后, 尝试运行

(tensorflow)一些关于您计算机的名字$ python >>> import tensorflow as tf

如果可以运行, 恭喜安装成功. 之后可以通过如下命令来退出conda环境

(tensorflow)一些关于您计算机的名字$ source deactivate tensorflow

* 如遇到问题类似 ImportError: libcudart.so.Version: cannot open shared object file, 可以通过下面命令查看一下自己的环境变量, PATH和LD_LIBRARY_PATH是否都包含全了

export

我最终的PATH包含如下路径:

declare -x PATH="/home/你的用户名/anaconda2/envs/tensorflow/bin:/home/你的用户名/anaconda2/bin:/usr/local/cuda-8.0/bin:usr/local/cuda/bin:(一些其他的路径)"

如果有缺少的可以尝试使用export PATH="$PATH:缺少的路径"补充, 记得最后source ~/.bashrc

(事实上我在用Source和Virtualenv遇到就是这个问题, 可惜当时并不知道怎么解决)

Ref:

https://www.tensorflow.org/install/ (TensorFlow官方教程, 非常详细有用)

http://blog.csdn.net/silangquan/article/details/9473613 (关于X Server的)

http://askubuntu.com/questions/112302/how-do-i-disable-the-nouveau-kernel-driver?answertab=oldest#tab-top  (关于 Neuveau的)

http://www.nvidia.com/download/driverResults.aspx/114708/en-us (关于安装NVIDA驱动时出现Blinding kernel module的)

http://www.rodsbooks.com/efi-bootloaders/secureboot.html#disable (关于登录界面循环卡死的)

http://*.com/questions/42013316/after-building-tensorflow-from-source-seeing-libcudart-so-and-libcudnn-errors(关于ImportError: libcudart.so.8.0: cannot open shared object file:  No such file or directory)

http://*.com/questions/36159194/tensorflow-libcudart-so-7-5-cannot-open-shared-object-file-no-such-file-or-di (关于ImportError: libcudart.so.8.0: cannot open shared object file:  No such file or directory)

最后, 特别感谢52nlp, 其中两篇文章介绍从Ubuntu安装到最后运行TensorFlow, 对我的帮助很大, 我的安装方式也是基于这两篇文章, 谢谢.

深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0

深度学习主机环境配置: Ubuntu16.04+GeForce GTX 1080+TensorFlow

初用Linux, 安装Ubuntu16.04+NVIDIA387+CUDA8.0+cudnn5.1+TensorFlow1.0.1的更多相关文章

  1. Ubuntu16.04 + gtx1060 + cuda8.0 + cudnn5.1 + caffe + Theano + Tensorflow

    参考 ubuntu16.04+gtx1060+cuda8.0+caffe安装.测试经历 ,细节处有差异. 首先说明,这是在台式机上的安装测试经历,首先安装的win10,然后安装ubuntu16.04双 ...

  2. 深度学习环境搭建(Ubuntu16.04+GTX1080Ti+CUDA8.0+Cudnn6.0+TensorFlow+Caffe2(Pytorch))

    OS System:Ubuntu16.04 GPU Device:GTX1080Ti Softwares:CUDA8.0.Cudnn6.0.TensorFlow(1.4.0).Caffe2(1.0.0 ...

  3. Win7 U盘安装Ubuntu16.04 双系统详细教程

    Win7 U盘安装Ubuntu16.04 双系统详细教程 安装主要分为以下几步: 一. 下载Ubuntu 16.04镜像软件: 二. 制作U盘启动盘使用ultraISO: 三. 安装Ubuntu系统: ...

  4. win7下通过easyBCD引导安装Ubuntu16.04(并处理遇到的坑)

    Ubuntu16.04作为目前最新版本的ubuntu系统,相信很多人都想在自己的电脑上安装一下,然而系统的安装方法各式各样,u盘法.grub引导法等等,这里我将介绍在win7系统下用easyBCD软件 ...

  5. win10安装ubuntu16.04及后续配置

    原文地址:https://www.jianshu.com/p/842e36a8255c UEFI 模式下win10安装ubuntu16.04双系统教程 - baobei0112的专栏 - CSDN博客 ...

  6. win10安装ubuntu16.04双系统历程

    目录 win10安装ubuntu16.04双系统 历程 安装时间 安装准备 安装过程 其他问题 win10安装ubuntu16.04双系统 历程 安装时间 2018.11.30 安装准备 u盘(格式化 ...

  7. 用 EasyUEFI 在 Win8/10 中硬盘安装 Ubuntu16.04图文教程

    用 EasyUEFI 在 Win8/10 中硬盘安装 Ubuntu 作者:TeliuTe 来源:基础教程网 1.准备Ubuntu安装文件 1)下载带amd的64位 Ubuntu 桌面版光盘镜像文件,如 ...

  8. (原)使用1080Ti显卡时安装ubuntu16.04.1及驱动的步骤

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6811328.html 参考网址: http://www.cnblogs.com/darkknightz ...

  9. 网络安装Ubuntu16.04

    网络安装Ubuntu16.04 搭建PXE服务器 PXE是Pre-boot Execution Environment,预启动执行环境.是通过网络安装任何linux系统最重要的步骤. 首选搭建PXE服 ...

随机推荐

  1. javascript无缝滚动示例

    效果 图片大小均为200*200; 默认向左循环滚动; 鼠标悬浮暂停,鼠标移走继续滚动; 可以在此基础进行扩展. 下面是代码: <!doctype html> <html lang= ...

  2. BZOJ1088扫雷Mine 解析报告

    1088: [SCOI2005]扫雷Mine Description 相信大家都玩过扫雷的游戏.那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来.万圣节到了,“余”人国流行起了一种简单的扫 ...

  3. lua module环境探秘

    module 作用 module (name [, ···]) Creates a module. If there is a table in package.loaded[name], this ...

  4. C&num; 托管资源和非托管资源

    托管资源指的是.NET可以自动进行回收的资源,主要是指托管堆上分配的内存资源.托管资源的回收工作是不需要人工干预的,有.NET运行库在合适调用垃圾回收器进行回收. 非托管资源指的是.NET不知道如何回 ...

  5. anjularjs slider控件替代方案

    做项目需要一个slider控件,找了很久没有找到合适的指令集,无意间看到可以直接用range替代,不过样式有点丑. <label> <input type="range&q ...

  6. BZOJ 1101&colon; &lbrack;POI2007&rsqb;Zap&lpar; 莫比乌斯反演 &rpar;

    求 answer = ∑ [gcd(x, y) = d] (1 <= x <= a, 1 <= y <= b) . 令a' = a / d, b' = b / d, 化简一下得 ...

  7. MEF框架在Silverlight中应用(15)

    原文:MEF框架在Silverlight中应用(15) MEF框架在Silverlight中应用 代码下载 MEF框架是微软提供的一个插件框架.应用概括为一句话:输入,输出,组合.下面是具体在Silv ...

  8. Java学习之计算机基础(二)

    今天主要介绍原码.反码与补码的知识.了解原码.反码与补码的知识,可以帮助我们更好地理解在计算机内部是如何进行运算的,同时对于后面更好地学习和理解Java基本数据类型及其范围打下基础. 背景知识: 在计 ...

  9. h5新增标签及css3新增属性

    - h5新增的标签 新增元素 说明 video 表示一段视频并提供播放的用户界面 audio 表示音频 canvas 表示位图区域 source 为video和audio提供数据源 track 为vi ...

  10. ubuntu下pycharm调用Hanlp实践分享

    前几天看了大快的举办的大数据论坛峰会的现场直播,惊喜的是hanlp2.0版本发布.Hanlp2.0版本将会支持任意多的语种,感觉还是挺好的!不过更多关于hanlp2.0的信息,可能还需要过一段时间才能 ...