原标题:从零开始:手把手教你安装深度学习操作系统、驱动和各种python库!

为了研究强化学习,最近购置了一台基于 Ubuntu 和英伟达 GPU 的深度学习机器。尽管目前在网络中能找到一些环境部署指南,但目前仍然没有全面的安装说明。另外,我也不得不阅读了很多文档来试图理解安装细节——其中的一些并不完整,甚至包含语法错误。本文试图提供一个详尽的软件环境安装指南。

操作系统(Ubuntu)

4 种驱动和库(GPU 驱动、CUDA、cuDNN 和 pip)

5 种 Python 深度学习库(TensorFlow、Theano、CNTK、Keras 和 PyTorch)

这些软件之间的互相依赖关系如下图所示:

深度学习软件安装和依赖示意图

详细介绍:

Ubuntu(v16.04.3)——操作系统,各种任务处理。

Nvidia GPU 驱动(v375)——允许系统获得 GPU 带来的加速。

CUDA(v8.0)——GPU C 语言库。「计算同一设备架构」。

cuDNN(v6.0.21)——基于 CUDA 的深度学习基元库。「CUDA 深度学习库」。

pip(v9.0.1)——Python 安装包。「Pip 安装包」。

TensorFlow(v1.3)——谷歌开发的深度学习框架。

Theano(v0.9.0)——此前由 MILA 负责维护的深度学习框架。

CNTK(v2.2)——微软研究院开发的深度学习框架。

Keras(v2.0.8)——深度学习包装可互换后端。可与 TensorFlow、Theano 和 CNTK 共同使用。

PyTorch(v0.2.0)——可被 GPU 加速的动态图深度学习框架,主要由 Facebook 的研究人员负责开发。

一. 安装操作系统

1. Ubuntu 16.04.3

v 16.04.3 可由 USB 启动的方式安装,它是最新的 LTS(长期支持)版本。首次在电脑上启用时,请在 BIOS 中选择由 USB 引导启动。我的电脑中有两块硬盘——一块 1TB 的 SATA 和一块 256GB 的 SSD。在我的设想中,Ubuntu 被安装在常规硬盘中,固态硬盘(SSD)用于处理数据集和加速训练。在安装过程中,在屏幕中的 Installation Type 中选择 Something else,随后我们要进行三个分区操作:

引导分区(128GB):包含系统文件、程序设置和文档。

交换分区(2 倍的内存大小):对于我来说这就是 128GB。这块分区的容量用于扩展 Kernel RAM 作为虚拟内存使用。

用户分区(剩下的部分):1TB 的硬盘剩下的空间大约还有 744GB。

在安装后,最好先运行以下命令来升级内核版本。

sudo apt-get update

sudo apt-get upgrade

Reference:https://tutorials.ubuntu.com/tutorial/tutorial-install-ubuntu-desktop#0

二、4 种驱动和库

1、安装英伟达 GPU 驱动

在安装完 Ubuntu 后,你可能会发现屏幕的分辨率不对,而且不能修改,这是因为现在还没有安装 GPU 驱动。

安装驱动有两种方法:从 Ubuntu 资源库和数据源。第一个方法更加容易,但需要频繁的重新安装。使用 sudo apt-get update 和 sudo apt-get upgrade 指令后,系统的内核可以自动升级。但这样并不会更新英伟达驱动,可能会导致 GUI 无法正确加载。从数据源安装可以避免这个问题。

从安装包里安装 v375 驱动(简单的方法)

以下命令会将与你系统相兼容的驱动版本显示出来,它会提供两个版本号:最新的不稳定版和长期稳定版。版本号会从头列起,所以你需要把页面滚到最上面。

sudo add-apt-repository ppa:graphics-drivers/ppa

添加并安装资源库。通过第二个命令,改变你想要安装的。我们在这里推荐安装最新的长期稳定版本——375 版。

sudo apt-get update

sudo apt-get install nvidia-

重启计算机以重新配置视频输出。

sudo shutdown-r now

要测试驱动程序是否工作,Screen Display(SUPERKEY,屏幕显示类型)现在应该可以识别你使用的显示器了,你可以修改设置、分辨率与方向。

Reference:https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa

从英伟达网站安装 v384.90(较难的方法)

从英伟达网站下载最新的驱动程序版本。基于硬件配置,我选择的选项是:

GeForce -> GeForce 10 Series -> GeForce GTX 1080 -> Linux 64 bit -> English (UK)

可选条件:编译到 32 位架构和 GUI 的开发版本。

sudo apt-get install gcc-multilib xorg-dev

按 CTRL + ALT + F1 键登录,从 GUI 转至终端。为了重建视频输出,必须先将其暂停。

sudo service lightdm stop

如果命令行没有效果,Ubuntu 新版本使用 systemctl 替换 lightdm。然后使 runfile 可执行,并运行它。

cd

chmod+x NVIDIA-Linux-x86_64-384.90.run

sudo./NVIDIA-Linux-x86_64-384.90.run--dkms

运行时,你可能会收到一条 pre-install failed 信息。这没什么影响,因为预安装脚本包含命令 exit 1,其目标是确保你真的想安装驱动程序。

选项--dkms(默认开启)在 kernel 自行更新时将驱动程序安装至模块中,从而阻止驱动程序重新安装。在 kernel 更新期间,dkms 触发驱动程序重编译至新的 kernel 模块堆栈。

如果安装失败,则原因在于计算机的 BIOS 未关闭 Secure Boot。重启电脑,在 BIOS 选项中关闭 Secure Boot。

如果安装成功,则可以重启 GUI。

sudo service lightdm start

卸载:sudo ./NVIDIA-Linux-x86_64-384.90.run --uninstall

验证

确保以下命令能够识别正确的 GPU 版本

nvidia-smi

确保驱动程序版本号与你安装的一致

cat/proc/driver/nvidia/version

2. 安装 CUDA 8.0

从英伟达网站,使用下列系统属性下载 CUDA 的 runfile(地址:https://developer.nvidia.com/cuda-downloads)。

Linux -> x86_64 -> Ubuntu -> 16.04 -> .deb(network)

导航至.deb 文件的位置后,将该文件解压缩,更新软件包列表,使用下列命令安装 CUDA。

sudo dpkg-i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb

sudo apt-get update

sudo apt-get install cuda

将库添加至 bash path,这样就可以使用其他应用找到库了。

echo'export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}'>>~/.bashrc

echo'export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}'>>~/.bashrc

source~/.bashrc

验证时,使用 nvcc -V 确保 Nvidia C Compiler(nvcc)版本与 CUDA 的版本匹配。

重启电脑 sudo shutdown -r now,完成安装。

可选操作:测试 CUDA 安装

测试安装的一个方法是运行一些示例。以下命令行创建了一个存储示例程序的 test_CUDA 目录。

mkdir test_CUDA

cd test_CUDA

./cuda-install-samples-8.0.sh.

子目录 NVIDIA_CUDA-8.0_Samples/3_Imaging/cudaDecodeGL 中是 findgllib.mk 文件。该文件的第 61 行 30 列包含了英伟达驱动程序的硬编码值,该值应从 367 更改成你安装的驱动程序版本号。

编译示例

cd../..&&make

你现在可以在 NVIDIA_CUDA-8.0_Samples 内随意运行示例。你可以在 NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release 中找到两个非常有用的脚本:./deviceQuery 可以在使用过程中打印 GPU,./bandwidthTest 可以打印它的带宽。

Reference:http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html

3. 安装 cuDNN 6.0.21

在英伟达网站上注册开发者项目,同意条款。从下拉菜单中选择 cuDNN v6.0.21 (April 27, 2017), for CUDA 8.0,并下载:

cuDNN v6.0 Runtime Library for Ubuntu16.04 (Deb)

cuDNN v6.0 Developer Library for Ubuntu16.04 (Deb)

cuDNN v6.0 Code Samples and User Guide for Ubuntu16.04 (Deb)

.deb 优先于.tar,因为.deb 格式更适用于 Ubuntu,可以进行更纯净的安装。使用下列命令安装这三个包:

sudo dpkg-i libcudnn6_6.0.21-1+cuda8.0_amd64.deb

sudo dpkg-i libcudnn6-dev_6.0.21-1+cuda8.0_amd64.deb

sudo dpkg-i libcudnn6-doc_6.0.21-1+cuda8.0_amd64.deb

测试 cuDNN

将已安装的示例复制到可读目录,然后编译并运行 mnistCNN。

cp-r/usr/src/cudnn_samples_v6/$HOME

cd $HOME/cudnn_samples_v6/mnistCUDNN

make clean&&make

./mnistCUDNN

如果一切顺利,脚本应该会返回一条 Test passed! 消息。

卸载 cudnn

使用以下命令卸载三个库。另外,如果你已经创建了样本,那么再加上 rm -r ~/cudnn_samples_v6。

sudo apt-get remove libcudnn6

sudo apt-get remove libcudnn6-dev

sudo apt-get remove libcudnn6-doc

Reference:cuDNN Installation Guide cuDNN Installation Guide(http://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html)

4. 安装 pip 9.0.1

Pip 的升级非常频繁,几乎每两周一次,建议使用最新版本的 pip。请使用以下命令安装和升级最新版本的 pip。

sudo apt-get install python-pip python-dev

sudo pip install--upgrade pip

验证:请确保键入 pip -V 后可以打印出版本号。

三、5 种 Python 深度学习库

1、安装 Tensorflow 1.3.0

pip install tensorflow-gpu

验证:启动$ python,确认是否以下脚本能够打印出 Hello, Tensorflow!

importtensorflowastf

hello=tf.constant('Hello, TensorFlow!')

sess=tf.Session()

print(sess.run(hello))

Reference:https://www.tensorflow.org/install/install_linux

2、 安装 Theano 0.10

Theano 需要的系统环境:

sudo apt-get install libopenblas-dev cmake git

此外还要遵循 Python 的系统需求。

sudo pip install numpy scipy nose sphinx pydot-ng pycuda scikit-cuda cython

libgpuarray 可以让 Theano 使用 GPU,它必须从源编译。首先下载源代码

git clone https://github.com/Theano/libgpuarray.git

cd libgpuarray

将其编译为一个名为 Build 的文件夹。

mkdirBuild

cdBuild

cmake..-DCMAKE_BUILD_TYPE=Release

make

sudo make install

随后将其编译成一个 Python 包。

cd..

python setup.py build

sudo python setup.py install

将下面一行添加至 ~/.bashrc,这样 Python 就可以找到库了。

export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH

最后,安装 Theano

sudo pip install git+https://github.com/Theano/Theano.git#egg=Theano

验证:创建测试文件 test_theano.py,其中的内容复制自:http://deeplearning.net/software/theano/tutorial/using_gpu.html#testing-theano-with-GPU

随后看看 THEANO_FLAGS=device=cuda0 python test_theano.py 在使用了 GPU 之后是否成功。

Reference: Theano 0.9.0 documentation(http://deeplearning.net/software/theano/install_ubuntu.html)

3、安装 CNTK 2.2

sudo pip install https://cntk.ai/PythonWheel/GPU/cntk-2.2-cp27-cp27mu-linux_x86_64.whl

验证:输入 python -c "import cntk; print(cntk.__version__)",输出 2.2。

Reference: Setup CNTK on your machine(https://docs.microsoft.com/en-us/cognitive-toolkit/setup-cntk-on-your-machine)

4. 安装 Keras 2.0.8

sudo pip install keras

验证:检查$ python 中的 import keras 是否成功。Reference: Keras Installation(https://keras.io/#installation)

5. 安装 PyTorch 0.2.0

PyTorch 运行在两个库上: torchvision 和 torch,我们需要这样安装:

sudo pip install http://download.pytorch.org/whl/cu80/torch-

0.2.0.post3-cp27-cp27mu-manylinux1_x86_64.whl

sudo pip install torchvision

验证:以下脚本能够打印出一个带有随机初始浮点数的张量。

from__future__importprint_function

importtorch

x=torch.Tensor(5,3)

print(x)

Reference: http://pytorch.org/

结论

目前为止,整个过程中最难的部分是找出 Nvidia 驱动和深度学习包之间的依赖关系,以及最有效的长期安装过程。而最简单的部分是安装 Python,安装包和文档都得到了良好的维护。

虽然阅读文档和源代码都非常耗费时间,但了解每个软件包的构建和功能是非常具有启发性的,它也可以帮助我们理解整个 Ubuntu 生态系统。

原文:https://medium.com/@dyth/deep-learning-software-installation-guide-d0a263714b2

系统学习,进入全球人工智能学院返回搜狐,查看更多

责任编辑:

python硬件驱动_从零开始:手把手教你安装深度学习操作系统、驱动和各种python库!...相关推荐

  1. 案例 :手把手教你运用深度学习构建视频人脸识别模型(Python实现)

    作者:Faizan Shaikh :翻译:季洋:校对:王雨桐: 本文约2700字,建议阅读10+分钟. 本文将展示如何使用开源工具完成一个人脸识别的算法. 引言 "计算机视觉和机器学习已经开 ...

  2. 独家 | 手把手教你运用深度学习构建视频人脸识别模型(Python实现)

    作者:Faizan Shaikh 翻译:季洋 校对:王雨桐 本文约2700字,建议阅读10+分钟. 本文将展示如何使用开源工具完成一个人脸识别的算法. 引言 "计算机视觉和机器学习已经开始腾 ...

  3. 手把手教你安装深度学习软件环境(附代码)

    来源:机器之心 本文长度为2800字,建议阅读5分钟. 本文向你解释如何在一台新装的 Ubuntu 机器上安装 Python 和 Nvidia 硬件驱动.各类库和软件包. 为了进行强化学习研究,我最近 ...

  4. 手把手教你用深度学习做物体检测(三):模型训练

    本篇文章旨在快速试验使用yolov3算法训练出自己的物体检测模型,所以会重过程而轻原理,当然,原理是非常重要的,只是原理会安排在后续文章中专门进行介绍.所以如果本文中有些地方你有原理方面的疑惑,也没关 ...

  5. 手把手教你用深度学习做物体检测(二):数据标注

      "本篇文章将开始我们训练自己的物体检测模型之旅的第一步-- 数据标注."   上篇文章介绍了如何基于训练好的模型检测图片和视频中的物体,若你也想先感受一下物体检测,可以看看上篇 ...

  6. 手把手教你用深度学习做物体检测(四):模型使用

    上一篇<手把手教你用深度学习做物体检测(三):模型训练>中介绍了如何使用yolov3训练我们自己的物体检测模型,本篇文章将重点介绍如何使用我们训练好的模型来检测图片或视频中的物体.   如 ...

  7. python原理书籍_python书籍推荐:《深入浅出深度学习:原理剖析与Python实践》

    在过去的这十年,深度学习已经席卷了整个科技界和工业界,2016年谷歌阿尔法狗打败围棋世界冠军李世石,更是使其成为备受瞩目的技术焦点. 今日,小编就为大家推荐一本能让初学者和"老司机" ...

  8. 手把手教你使用深度学习的方法进行人脸解锁

    来源:DeepHub IMBA 本文约3000字,建议阅读8分钟 本文手把手教你如何创建人脸解锁算法. 今天,我们将使用深度学习来创建面部解锁算法.要完成我们的任务需要三个主要部分. 查找人脸的算法 ...

  9. 手把手教你搭建深度学习环境

    最近实验室买了一台新的机器,正好要从头配置机器的环境,把环境记录一下 1.安装ubuntu系统 1.1制作系统盘 首先,我们需要准备三个东西 ubuntu的镜像文件,我这里选择的是ubuntu-20. ...

最新文章

  1. 2022-2028年中国无溶剂聚氨酯复膜胶行业市场调查研究及发展前景规划报告
  2. HMTL判断ie版本
  3. 二叉查找树 Java实现
  4. spring mvc静态资源访问的配置
  5. 前端学习(294):rem小实例
  6. 普通程序猿三步升级成高级程序员
  7. java动态工程_eclipse 创建maven 项目 动态web工程完整示例
  8. 《深度学习笔记》——深度神经网络的调试笔记
  9. 类似腾讯手机管家应用android源码
  10. 【SimpleITK】胸部CT数据3D space归一化,以及3D plot
  11. 使用LoadBalancerClient就行服务消费
  12. 【CVPR 2021联邦学习论文解读】Model-Contrastive Federated Learning (MOON) 联邦学习撞上对比学习
  13. 轻量级协作机器人到仿人机器人的关键技术演进及生态共建
  14. 电子计算机的核心部件是哪三个,电子计算机三大核心部件 是什么
  15. jQuery 样式操作
  16. 小项目:收支记账和客户关系管理
  17. 【SHOI2008】【BZOJ1023】cactus仙人掌图
  18. %f 与 %lf的区别
  19. android x5 webview报错,appium 混合 APP,x5 内核,webview 切换报错
  20. ChatGPT翻译怎么样-ChatGPT批量翻译工具软件

热门文章

  1. Android开发 之 直播视频技术探究之---基础知识大纲介绍
  2. 视频爬虫js逆向——我搜不到密参怎么办
  3. 团购网站的销售额是怎么来的?
  4. android爬取视频播放地址,Android 视频中抓取图像 - MediaMetadataRetriever
  5. 和王兴并肩战斗十余年,王慧文的精华思考都在这里了
  6. “鲜花插在牛粪上” 好域名嫁错郎?
  7. overleaf 罕见中文字符 部分中文字符无法显示
  8. Linux安装Nginx 作者:哇塞大嘴好帅
  9. 天津轻工职业技术学院计算机专业怎么样,2019年天津轻工职业技术学院有哪些专业?...
  10. 小黑鱼科技完成A+轮5000万美金融资