10个深度学习软件的安装指南(附代码)

由于近期论文的需要,我搭建了一个基于 Ubuntu 和英伟达的深度学习环境。尽管已经有很多非常棒的关于英伟达驱动和 CUDA 的安装指南, 但依然没有详尽的深度学习环境搭建指南。另外,我需要查阅很多文档来熟悉细节,其中一些细节还有待完善,甚至还有一些包含语法错误。因此我决定把我这段时间查阅的文档(见参考链接)做个总结。

该指南会安装如下内容

  • 操作系统(Ubuntu)
  • 4 个驱动和库
  • 5 个 Python DL 库(TensorFlow,Theano,CNTK,Keras 和 PyTorch)

下面显示了每个包的依赖项。Python 深度学习库只需安装一个,你可以选择一个喜欢的进行安装。

下面是更为详细的组件清单:

  1. Ubuntu(v16.04.3)- 操作系统,进程管理。
  2. 英伟达显卡驱动(v375)- 允许操作系统操作显卡。
  3. CUDA(v8.0)- 显卡 c 语言库。提供了统一不同架构的标准。
  4. cuDNN(v6.0.21)- 基于 CUDA 的深度神经网络库。
  5. pip(v9.0.1)- Python 包管理工具。
  6. TensorFlow(v1.3)- 谷歌开发的深度学习库。
  7. Theano(v0.9.0)- 运行于 GPU 的数学基础库。
  8. CNTK(v2.2)- 微软搜索开发的深度学习框架。
  9. Keras(v2.0.8)- 深度学习库包装层(对外提供统一调用,内部可使用不同的深度学习框架),支持 TensorFlow,Theano 和 CNTK。
  10. PyTorch(v0.2.0)- GPU 加速运算的动态深度学习库。

1. 安装 Ubuntu 16.04.3

下面介绍纯净安装(会覆盖以前的分区和系统)。
v 16.04.3 是最新的 LTS(长期支持)版本,因此我们选择从 USB 启动盘安装。当按下电源键后进入启动菜单选择从 USB 启动。

我的设备包含两块硬盘,1TB 的机械硬盘和 256GB 的固态硬盘。我把系统安装在了机械硬盘上,固态硬盘用于数据存储,这样能提高模型训练速度。安装过程中我选择了创建 3 个分区。

启动分区(128GB):包含系统文件,程序设置和文档。

交换分区(2 倍内存大小):对于我该分区大小 128GB。交换分区是用于扩展内存的虚拟内存。

用户分区(剩余):剩余的 744GB 为用户分区。

安装完成后,运行以下命令升级内核。

2. 英伟达显卡驱动

Ubuntu 安装完成后会发现无法修改屏幕分辨率。这是因为视频屏幕数据源 GPU 没有驱动和没有被正确的配置。

有从 Ubuntu 仓库和 source 两种方式安装驱动。第一种方式更简单,但经常需要重新安装。调用 sudo apt-get update 和 sudo apt-get upgrade 两个命令会升级内核。这不会升级显卡驱动并会造成 GUI 加载失败。从 source 进行安装避免了这个问题。

从包安装 v375(更简单)

下面命令列出了与你系统兼容的所有驱动版本。输出会打印两个版本数字:最新和长期支持的发行版本号。打印的版本号在输出的最前面,向上滑动查看。

添加并安装仓库源。使用下面命令修改想要安装的驱动版本号。建议修改为最新的长期支持版本 -375。

重启电脑重新配置屏幕输出源。

安装完成后,显示器应该可以识别你使用的监视器,可通过修改显示器配置,分辨率和方向来检测驱动是否安装成功。

从英伟达源安装 v384.90(困难)

从英伟达官网下载最新驱动。我选择的是:

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

以下命令为可选项,可允许编译为 32 位架构和 GUI 开发者版本。

按下 CTRL+ALT+F1 并登陆会从 GUI 切换到终端。为了重新构建屏幕输出源,必须暂停用户界面。

要是上面命令不起作用,新版 Ubuntu 可使用 systemctl 替代 lightdm。然后修改 runfile 为可执行并执行。

运行时有可能会遇到 pre-install script failed 的错误信息。这是因为 pre-install 包含了 exit 1 命令因此该错误信息可以直接忽略。该命令的作用是为了确保你真的想要安装驱动。

--dkms 选项(默认打开)用于防止内核通过安装驱动到模块进行更新时,该驱动会重新安装。内核更新时,dkms 会触发驱动重新编译到新内核模块栈。

如果 BIOS 没有禁用安全启动会导致安装失败。重启电脑进入 BIOS,禁用安全启动。

如果安装成功,重启 GUI。

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

认证

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

nvidia-smi确保驱动版本号正确

3. 安装 CUDA8.0

从英伟达官网下载 CUDA 的运行文件。如下选择:

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

切换目录到.deb 文件,使用以下命令解包、更新包列表并安装 CUDA。

添加该库到 bash 路径以便其他应用也能找到。

输入 nvcc -V 命令确保英伟达 c 编译器版本和 CUDA 版本匹配。

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

可选:检测 CUDA 安装

可通过运行例子来检测安装是否成功。下面命令创建一个 test_CUDA 文件夹用于存储示例。

在子文件夹 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 可打印出带宽。

参考链接:英伟达 CUDA 安装手册

4. 安装 cuDNN6.0.21

在英伟达官网,选中同意条款注册成为开发者。为匹配 CUDA8.0,在 cuDNN v6.0.21 下拉菜单中下载:

  1. 针对 Ubuntu16.04 的 cuDNN v6.0 运行时库(Deb)
  2. 针对 Ubuntu16.04 的 cuDNN v6.0 开发者库(Deb)
  3. 针对 Ubuntu16.04 的 cuDNN v6.0 代码示例和用户指南(Deb)

.deb 可以纯净安装,相较.tar 来说是更好的选择。使用下面命令会安装三个包:

测试 cuDNN

拷贝已安装的示例代码到可读文件夹下,编译并运行 mnistCNN。

运行正常脚本会返回 Test passed!

卸载 cudnn

下面命令可以卸载安装好的三个包。另外,如果创建过示例,记得运行 rm -r ~/cudnn_samples_v6。

参考链接:cuDNN 安装指南

5. 安装 pip9.0.1

Pip 更新非常频繁,基本每两周就会更新一次。建议使用最新版本。

下面命令用来安装 pip 和更新到最新版本。

为确保是最新版本,运行 pip -V 来检查版本号。

6. 安装 Tensorflow1.3.0

pip install tensorflow-gpu

为验证是否安装成功,使用 $python 开启 python,运行以下脚本确保输出打印 Hello, TensorFlow!

参考链接:Ubuntu 上如何安装 tensorflow

7. 安装 Theano 0.10

Theano 需要下面系统依赖

和 Python 依赖。

libgpuarray 允许 Theano 使用 GPU,libgpuarray 只能从源码编译。首先 下载源码

编译到指定文件夹 Build 下。

然后编译到 python 包中

添加下面命令到~/.bashrc 中以便 python 能够找到该库。

最后安装 Theano

验证是否安装成功,创建一个 test_theano.py 文件,将内容拷贝至该文件。确保 THEANO_FLAGS=device=cuda0 python test_theano.py 命令运行成功并输出 Used the gpu。

参考链接:Theano 0.9.0 文档

8. 安装 CNTK2.2


验证是否安装成功,运行 python -c "import cntk; print(cntk.version)"查看是否打印 2.2。

参考链接:如何配置 CNTK

9. 安装 Keras2.0.8
sudo pip install keras

从 $python 环境运行 import keras 验证是否安装成功。

参考链接:Keras 安装

10. 安装RyTorch0.2.0

PyTorch 依赖两个库 torchvision 和 torch。

安装成功后下面脚本应该打印出一个随机的浮点数。

参考链接:PyTorch 主页

总结

整个安装过程最困难的部分是找出英伟达驱动和深度学习库之间的依赖项和找到最有效的长期支持安装教程。最简单的部分是安装文档更新活跃且详细的 Python 包。

尽管阅读文档浏览源码很费时间,但了解每个包的作用和如何构建对了解整个 Ubuntu 生态是很有帮助的。

原文发布时间为:2017-11-18

时间: 2024-08-03 09:44:15

10个深度学习软件的安装指南(附代码)的相关文章

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

为了进行强化学习研究,我最近购置了一台基于 Ubuntu 和英伟达 GPU 的深度学习机器.尽管目前在网络中能找到一些环境部署指南,但目前仍然没有全面的安装说明.另外,我也不得不阅读了很多文档来试图理解安装细节--其中的一些并不完整,甚至包含语法错误.因此,本文试图解决这个问题,提供一个详尽的软件环境安装指南. 本文将指导你安装 操作系统(Ubuntu) 4 种驱动和库(GPU 驱动.CUDA.cuDNN 和 pip) 5 种 Python 深度学习库(TensorFlow.Theano.CNT

Nervana 开源深度学习软件,性能超 Facebook、Nvidia产品

Nervana System是少数专注机器学习这种人工智能技术的创业公司该公司,近日宣布将其深度学习软件在Apache开源许可协议下开源(github),任何人都可以免费下载使用.根据Facebook一位研究者的基准测试,Nervana的软件比业界知名的深度学习工具性能都要高,包括Facebook自己的Torch7和Nvidia的cuDNN. 深度学习时人工智能技术的热门领域,目前谷歌.微软和百度等互联网巨头在深度学习也都投入重金研发.而不少深度学习创业公司也都遭巨头们纷纷抢购,例如Madbit

深度学习软件安装指南

由于即将要开始撰写强化学习论文,所以我最近搭建了一个基于Ubuntu和Nvidia的深度学习计算机.虽然在深度学习方面有很多不错的教程,但却无法找到一篇完整的安装说明.我不得不阅读大量的文档来了解细节和规范,其中一些不完整或者存在语法错误.因此,我决定把我所做的所有工作进行整理并记录下来. 该指南将告诉你如何进行安装: 操作系统(Ubuntu) 4个驱动程序和库(GPU驱动程序.CUDA.cuDNN和pip) 5个Python深度学习库(TensorFlow.Theano.CNTK.Keras和

盘点|10条最有用的深度学习教程资源(附教程链接)

本文来源于Github blog BY omtcyfz 译者:赫鑫宇 郭昕 今天介绍一些深度学习的资源干货!个人认为这些资源对于那些刚刚进入机器学习领域准备摸索一番的小白十分有帮助.同时如果你想进一步了解神经网络算法及其应用,那请阅览本篇文章吧,相信会对你有极大的帮助! 在上干货之前,先来讲一下我把这些资源整合起来并归结到本篇文章中的初衷.在刚开始入门学习的时候,我看了大量的没有文字介绍的链接资源,我完全不知道他们中的哪一个是值得花时间研究的.所以现在我把见过的最有用的一些链接资源拿出来并配以简

数据科学家必须知道的 10 个深度学习架构

近年来,深度学习的发展势头迅猛,要跟上深度学习的进步速度变得越来越困难了.几乎每一天都有关于深度学习的创新,而大部分的深度学习创新都隐藏在那些发表于ArXiv和Spinger等研究论文中. 本文介绍了部分近期深度学习的进展和创新,以及Keras库中的执行代码,本文还提供了原论文的链接. 简洁起见,本文中只介绍了计算机视觉领域内比较成功的深度学习架构. 另外,文章基于已经掌握了神经网络的知识,并且对Keras已经相当熟悉了的基础.如果你对这些话题还不太了解,强烈建议先阅读以下文章: <Fundam

从Caffe开始深度学习实战,徒手hack代码乐趣更多

从Geoffrey Hinton 2006年的论文算起,这一波深度学习(DL)浪潮才10年,而如果只算国内,深度学习的流行也不过5年,尽管如此,深度学习现在已经扎根中国互联网,成为BAT.京东.360.今日头条等公司的基础技术和战略技术,与之伴随的,则是深度学习技术人员的快速成长,例如,阿里云工程师卜居(赵永科)博客,2014年才开始接触深度学习实战,如今已在深度学习及计算优化方面方面有很独到的见解.卜居在最近写了一本浓缩其深度学习实战经验的书--<深度学习-21天实战Caffe>,该书获得了

还在费心学编程?微软用深度学习 AI 帮你写代码

在过去的几十年中,无论在硬件组织还是软件架构上,计算机行业已经发生了翻天覆地的变化,各种软硬件产品的性能和用户体验均得到了显著提升. 但对程序员而言,软件编码的本质似乎并没有什么本质的改变:无论哪种编程语言,仍然需要程序员根据算法逻辑和实现步骤一步一步地手动敲入代码.虽然近几年随着编码工具的改进和编程语言的版本更新,对于程序员而言,这一过程已经相当方便了,但学习如何编程仍然是诸多计算机用户不得不面对的一道难题. 雷锋网消息,近日,微软在论文中公布了一项最新的代码合成系统:RobustFill.它

深度学习在2016年都有哪些主要研究进展?(附开源平台地址)| 盘点

在过去的几年时间里,深度学习(Deep Learning)一直都是机器学习社区的核心主题, 2016年也不例外.  研究人员长久以来亟待解决的一个主要挑战就是无监督学习(Unsupervised Learning).Tryolabs 认为,2016 年对于这一领域来说是取得伟大突破的一年,主要原因是出现了大量的基于生成模型(Generative Models)的研究.此外,雷锋网会介绍自然语言处理(NLP)技术在 2016 年所取得的创新,这些技术会是实现该目标的关键.除了回顾那些推动该领域快速

10 个值得一试的开源深度学习框架

本周早些时候 Google 开源了 TensorFlow(GitHub),此举在深度学习领域影响巨大,因为 Google 在人工智能领域的研发成绩斐然,有着雄厚的人才储备,而且 Google 自己的 Gmail 和搜索引擎都在使用自行研发的深度学习工具. 无疑,来自 Google 军火库的 TensorFlow 必然是开源深度学习软件中的明星产品,登陆 GitHub 当天就成为最受关注的项目,当周获得评星数就轻松超过 1 万个. 对于希望在应用中整合深度学习功能的开发者来说,GitHub 上其实