来源:AI前线

本文长度为2385字,建议阅读4分钟

本文为你介绍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 生态是很有帮助的。

最后,感谢您的阅读!

原文链接:

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

编辑:王璇

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

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

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

  2. 单元测试在深度学习中的应用 | 附代码「AI产品/工程落地」

    关注:决策智能与机器学习,深耕AI脱水干货 作者 |   Tilman Krokotsch 编译 |   ronghuaiyang   报道 |  AI公园 导读 本文非常详细的介绍并演示了如何将单元 ...

  3. 独家|让你的GPU为深度学习做好准备(附代码)

    作者:Saurabh Bodhe 翻译:陈振东 校对:车前子 本文约1000字,建议阅读5分钟. 本文讲述了使用NVIDIA官方工具搭建基于GPU的TensorFlow平台的教程. <在谷歌云平 ...

  4. 手把手教 | 深度学习库PyTorch(附代码)

    原文标题: An Introduction to PyTorch – A Simple yet Powerful Deep LearningLibrary 作者:FAIZAN SHAIKH 翻译:和中 ...

  5. NLP for Quant:使用NLP和深度学习预测股价(附代码)

    今天,你AI了没? 关注:决策智能与机器学习,每天学点AI干货 美国证券交易委员会(SEC)的文件长期以来一直被用作出投资决策的宝贵信息来源.一些论文和项目已经演示了如何使用自然语言处理技术从SEC文 ...

  6. 收藏 | 深度学习损失函数大全(附代码实现)

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 来源:机器学习与数学 Tensorflow 和 PyTorch 很多都是相似的,这里以 PyT ...

  7. 谷歌、阿里们的杀手锏:3大领域,10大深度学习CTR模型演化图谱(附论文)

    来源:知乎 作者:王喆 本文约4000字,建议阅读8分钟. 本文为你介绍近3年来的所有主流深度学习CTR模型. 今天我们一起回顾一下近3年来的所有主流深度学习CTR模型,也是我工作之余的知识总结,希望 ...

  8. 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述

    <繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...

  9. tensorflow玻尔兹曼机_资源 | 10种深度学习算法的TensorFlow实现

    原标题:资源 | 10种深度学习算法的TensorFlow实现 选自 Github 作者:blackecho 机器之心编译 参与:吴攀 这个 repository 是使用 TensorFlow 库实现 ...

最新文章

  1. Android Studio中mac上面的安装
  2. Java static作用
  3. 网络工程师成长日记417-西安如家酒店无线覆盖技术支持
  4. C++实用技巧(一) - λ-calculus(惊愕到手了欧耶,GetBlogPostIds.aspx) - C++博客
  5. Bootstrap 缩略图
  6. 源码包安装mysql5.7.25_centos源码安装mysql5.7.25-boost
  7. 跟我一起做面试题-linux线程编程(2)
  8. 向云上迁移数据时如何避免停机和中断
  9. java 前后端分离_到底什么是前后端分离?
  10. PR13.0 2019 导入图片仅显示部分解决方法
  11. AI(人工智能:一种现代的方法)学习之:基于信息的搜索策略(informed search)——启发式(heuristic)搜索、贪婪(greedy)搜索、A* (A star)搜索
  12. 教资篇(1)—高中信息技术科目
  13. Magento 数据表结构 EAV模型详解
  14. 接口开发任务完成中(待续)
  15. http的一个在线工具(推荐)
  16. matlab 实现二进制与十进制相互转换
  17. 几种代表性的相控阵系统简介
  18. 犀牛软件插件-rhino插件-visual studio-创建你的第一个插件
  19. 300行代码带你实现一个Linux文件系统
  20. PeckShield宣布与Cobo钱包达成安全战略合作

热门文章

  1. iOS 网络状态判断方案(支持iOS11和iPhoneX)
  2. Visual Studio 2017正式版发布全纪录
  3. SSH框架搭建问题总结
  4. 2016年云安全调查报告(更新版)
  5. JPA(二)之CRUD操作
  6. nginx的小总结(二)
  7. 知乎网解决HTML5 Placeholder的方案
  8. Sqlserver 2000 迷你、便携企业管理器(10M),支持Dts编辑
  9. hibernate mysql longblob_使用hibernate 插入mysql blob 字段 最大能插入多大的数据
  10. .git文件夹_Git服务器安装- windows