AI 技术讲座精选:数学不好,也可以学习人工智能(三)

【AI100 导读】学习人工智能到底要不要学好数学,这俨然已经成了一个争议话题了?之前 AI100 刊发了本系列的前两篇文章,也发表了作者子白的《放弃幻想,搞 AI 必须过数学关》,不知你是否有自己的结论。也许是针锋相对,也许是殊途同归,但动手能力终归是关键。

今天,我们将会一起搭建深度梦幻机。

  • 寻找最好的电脑部件,将其组合,成为数字处理利器。
  • 在 Ubuntu Linux 16.04 操作系统的基础上,逐步试验安装所有的最新的深度学习框架。

深度梦幻机割穿神经网络的过程与热激光刀切开黄油的过程类似。除非花费129000多美元购买到 Nvidia 的人工智能超级计算机 DGX-1,否则你所搭建的机器的性能绝不可能超越下文中介绍的梦幻机的性能。

  • 最后,如果你的预算比较紧张的话,也别绝望!本文也会为大家提供一些成本非常低的替代方案。

首先,TL;DR,一个极其划算的升级选择。

在我们埋头搭建野兽级深度学习计算机之前,我想先为大家介绍一下最简便的升级路径。

如果你不想重新搭建出一个全新的机器,那么你还有另一个绝妙的选择。

只需升级你的 GPU(运用 Titan X 或 GTX1080)并安装 VMware Workstation 或其他能为 GPU 提速的虚拟化软件就可以了!再或者,你也可以裸机安装 Ubuntu,然后再让 Windows 机器在 VM 中运行,这样就可以最大限度地提升机器的性能,适用于深度学习。

按照文章结尾的教程来安装 Ubuntu 和深度学习框架吧!只用很少的钱便可为自己买台深度学习的巨星!

好了,让我们开始吧。

在下文中我会用以下两个缩写分别表示梦幻机的部件和便宜的部件:

  • MINO[Moneyis No Obeject(金钱不是问题)]=梦幻机
  • ADAD[ADollar and a Dream(我有一美元和一个梦想)]=低成本的替代方案

梦幻机部件秀

GPU

CPU 不再是机器的中心,AI 的应用已经彻底改变了这一切。如果你曾经为了玩游戏而自己搭建过机器的话,你可能会为你得到的超棒的 Intel 芯片而欣喜若狂。

但是时代改变了。

Nvidia 是新时代的 Intel。

对于任何神器级的深度学习机器来说,最重要的部分都是 GPU。

过去的几年里,尽管 AMD 在加密货币挖矿方面收获颇丰,但尚未在 AI 领域有所建树。AMD 正奋起直追,以求在 AI 领域占据一席之地,相信不久的将来便可有所突破。但是目前,Nvidia 仍然是 AI 领域的领先者。当然,大家也不用太担心 Intel。Intel 已经买下了 Nervana 系统并计划在2017年推出自己的深度学习 ASIC。

我们先从 MINO 开始讲起。Titan X 是终极的 GPU,无与伦比。

它集3584个频率为1531MHz的 CUDA 核心和 G5X 显存(12GB)于一体,显存速度达到 10Gbps。

对于深度学习来说,核心非常重要。同时,是否有更多的内存用于核心的支配工作,也是非常重要的。

深度学习实际上就是大量的线性代数,类似一张巨大的 Excel 工作表。如果同时运算其中的数字的话,可能会搞垮一个4核或8核 Intel 中央处理机。

目前,存储器中数据的存入和提取存在着巨大的瓶颈。所以,如果能在芯片上设置更多的存储器的话,问题便能迎刃而解了。这也是当下 Titan X 能够称霸的原因。

你可以花1200美元(制造商建议零售价)直接从 Nvidia 购买到 Titan X。不幸的是,由于限制你只能买两个 Titan X。但是我们要构建的可是梦幻机!需要买四个才够!那才是完美的4路 SLI。

为了买到剩下的两个 Titan X,你需要借助某个购买平台,并支付给第三方卖家一点额外的费用。你可以先在 Nvidia 官网买两个,然后再去亚马逊买另外两个。这会花上你5300美元,是构建梦幻机要花费的主要的费用。

现在,如果你仅仅打算玩玩 Minecraft,很遗憾它看上去仍然还是块状的。但是如果你想训练一个能够击败癌症的模型,刚刚买到的4个 Titan X 就可以用了!:)

对于游戏而言,当显卡超过两个的时候,硬件测试网站便会显示已经越过收益递减点。而对于AI而言,显卡越多越好。当然,AI也存在收益递减点,不过那是在十几个或者上百张显卡(取决于算法)的情况下,而我们现在只有4个显卡。所以把它们都用上吧!

请注意,此时你将不再需要SLI桥接器,除非你想用梦幻机来打游戏。桥接器的作用是用于图形绘制,而梦幻机的构建只涉及非常少量的图形绘制过程(只在matplotlib中绘制极少量的图形)。

成本较低的替代性 GPU

你可以选择将 GeForce GTX 1080 Founders Edition 作为你的 ADAD 显卡。GeForce GTX 1080 配备了2560个 CUDA 核心,远远少于 Titan X,但是其制造商建议零售价为699美元,仅为 Titan X 的一半。

相比而言,GeForce GTX 1080 的RAM为8GB,而 Titan X 为12GB。

EVGA 一直相当好用,所以为你的机器买4张这种显卡吧。现在你的总花费为2796美元,相比于 Titan X 的5300美元节省了一大笔费用,而且二者性能相当。

次优选择是 GeForce GTX 1070。GeForce GTX 1070 配备1920个 CUDA 核心,仍旧是一个不错的选择。其制造商建议零售价约为499美元,而 superclocked 版本的 EVGA 1070 仅需花费389美元就可得到。这样一来,总价格便可低至1556美元。非常可行!

当然,如果你没有足够多的钱,也可以选择只买两张或者三张显卡。即便只有一张显卡,也是可以实现目标的。

让我们计算一下购买两或三张显卡需要花费的费用:

  • 3 xTitan X = 10752个CUDA核心,36GB的GPU RAM= $3800
  • 2 xTitan X = 7167个CUDA核心,24 GB的GPU RAM= $2400
  • 3 xGTX 1080 = 7680 个CUDA核心,24GB的GPU RAM= $2097
  • 2 xGTX 1080 = 5120 个CUDA核心,16GB的GPU RAM= $1398
  • 3 xGTX 1070 = 5760 个CUDA核心,24GB的GPU RAM= $1167
  • 2 xGTX 1070 = 3840 个CUDA核心,16GB的GPU RAM= $778

3张 GTX 1080 是最为合算的。价格变为一半,而核心数只减少3072个。坦白告诉你:这就是我搭建自己的工作站的方式。

SSD 和旋转硬盘

你需要配备一个 SSD,特别是在构建卷积神经网络以及处理众多图片数据的情况下。Samsung 850EVO(1TB)是当下最好的 SSD。可喜的是,去年 SSD 的价格大幅度下跌,所以你肯定能负担得起。850 1TB目前只需要花费大约319美元。

Samsung 850的 ADAD 版本内存为250GB,售价98美元,非常便宜。

同时,你还需要配备一个旋转硬盘,储存下载文件。在深度学习中,数据集可能会非常地庞大,而一个4TB的 Seagate Barracuda 足以胜任存储工作。

主板

因为我们想同时安装下4个 GPU,所以主板的选择范围变得十分有限。为了让4张显卡的总线速度达到最高,我们需要购买 MSI Extreme Gaming X99A SLI Plus。

ASUSX99 Deluxe II 同样也可以。

如果你的显卡数少于4张的话,你的选择范围会更广一些。就主板而言,我青睐那些稳定性强的主板。这一点,我是在搭建加密货币挖矿机的过程中深有体会。如果持续地运行 GPU 的话,用不了多久你的机器便会彻底损坏。Gigabyte 的生产线能够产出非常耐用的主板。X99 Ultra Gaming 就如同磐石一样坚固稳定,费用为237美元。

机箱

Cooler Master Cosmos II 是终极版的全塔机箱。其赛车样式的外形非常优美,由拉丝铝和钢打造而成。

如果你想要一个中塔机箱,选 Cooler Master Maker 5T 准没错。

在我看来,所有机器都不该配备便宜而又小气的机箱。当你为了寻找故障而必须打开它的时候,你会立即清楚地意识到自己所犯的错误。免工具机箱堪称完美。但是除此之外,还有很多更加合算的机箱可供选择,所以多做做准备工作吧。

CPU

你的深度学习机器并不需要很强大的 CPU 处理能力。大多数应用软件将数据加载到 GPU 的过程都是单线程的,只有在 GPU 上才涉及多核处理过程,所以你不需要在 CPU 上花太多的钱。

即便如此,你不妨把你的处理器的时钟频率提升到最快,也就是 i7-6700k 的4GHz。如果从亚马逊购买的话,你还能得到一个风扇。实话说,这有点儿过火了,但是如今它的价格已经大幅度下降,而这样做可以提升机器的单线程性能。刚刚提到的 CPU 性能非常棒。

如果你希望机器运行的时候能够更安静些,可以使用水冷散热器,但是一般情况下 CPU 的运行不会这么剧烈。事实上,大多数的风扇噪音都来自 GPU。

很遗憾,此处并没有什么很好的 ADAD 替代性方案。附带水冷散热器的3.5GHz的 i5 的花费和4GHz的差不多,还考虑什么呢?赶快下手吧!

电源

EVGA Modular 1600W Supernova G2 电源是给你的4路 SLI 供电的最佳选择,费用大约是305美元。

单个 Titan X 的功耗大约在250W左右,4个 Titan X 便轻松地把功率带到了1000W。这样以来,就不会有太多剩余电力供 CPU、内存和系统使用,因此需要采用功率尽可能大的供电设备。

如果你的显卡数比较少,可以选用1300W的电源,相应的花费也会降至184美元。

软件安装

硬件部分已经完成,接下来便是软件安装过程。

你有三个选项:

  • Docker容器
  • 虚拟机
  • 裸机安装

Docker

如果你想选 Docker 这个选项,那么你需要去官方网站了解一下 Nvidia-Docker 项目,这是基础。然而,要想真正获得所有的框架、库和语言,你必须在镜像的顶端进行大量的安装工作。

你可以采用一体化的深度学习容器,比如说 GitHub 上的:https://github.com/floydhub/dl-docker

一体化的 Docker 镜像具备诸多优点,但也存在着一些问题。考虑到安装的复杂性,会出现问题是在所难免的。

我找到了其中一个问题的答案(https://github.com/floydhub/dl-docker/issues/36;在如今的 Ubuntu 16.04 LTS 上,libopenjpeg2 已更新为 libopenjpeg5),但是我已经对解决第二个问题非常厌倦了。我还在等待相关修复方法的出现。如果你喜欢修复 Dockerfiles 并喜欢将修复方法发到 GitHub 上的话,我鼓励你采用一体化的方法。

第二个主要的挑战就是,镜像非常非常的庞大。所以由于超时,不能推送到 Dockerhub 上。这意味着你必须自己来构建,会耗费数个小时用于编译过程、拉取 layers 以及排除故障,花费的时间和在裸机上的操作一样多。

最后,新构建出来的模型并不完全包含所有我想要的东西,其中就包括 Anaconda Python。

最终,我决定使用一体化裸机教程。这样一来,我不仅可以升级机器,还可以加入自己的偏好。

虚拟机

正如我在本文开头“TL;DR”部分提到的那样,你完全可以升级现有的游戏机,添加支持 GPU 传送的 VMware Workstation Pro,以很少的花费开启探索过程。这是一种非常节约成本的策略。它具有诸多优势,比如可以轻易地备份虚拟机、创建快照以及回滚等。它不像 Docker 容器开始的非常迅速,但是VM技术此时已经非常成熟,它会为你提供很多工具以及最优的方法。

裸机

对于我要构建的机器,这是我最终的选择。虽然有一点儿守旧,但是对于一个长期的系统管理员来说,它最适合我,因为这样我可以拥有最高程度的掌控权。

在我们开始之前,先阅读一些关于深度学习软件的信息。

你会发现绝大部分的 AI 研究都是用 Python 完成的,因为 Python 非常易于学习和安装。我不能确定当AI大规模投入生产时 Python 依旧盛行,但是当下 Python 是最好的选择。很多的重要框架是用 Python 写成的,其科学库更是遥遥领先。

与此同时,R 语言和 Scala 也受到了众多的青睐,所以我们也会把这些添加到程式中。

下面列出裸机情况下我们需要装配的主要的程序包:

语言

  • Python2.x
  • Anaconda——Anaconda 属于 Python 的高性能版本,包含100多个数据科学领域最为常用的 Phython 包、R 包和 Scala 包。
  • R——一种用于统计计算和绘图的语言环境。
  • Scala——Scala 是“Scalable Language(可伸缩的语言)”的缩写。它和 Java 类似,但是具有超高的性能,并且能够提供模块化设计。

驱动程序和 API

  • Nvidia 驱动器
  • CUDA——一种由 Nvidia 创建的专有的并行计算平台和应用程序界面(API)模型。
  • cuDNN——针对深度神经网络的 GPU 加速基元库

辅助程序

  • Jupyter——这是个了不起的网络应用,你可以在一个文件夹里分享文档和可执行代码。

框架/库

  • TensorFlow——谷歌的开源深度学习框架,为谷歌翻译等提供支持。
  • Theano——一种稳健并十分受欢迎的机器学习框架。
  • Caffe——一种来自伯克利的深度学习框架。
  • Torch——一种科学计算框架,支持各种将 GPU 置于首位的机器学习算法。
  • MXNET——伸缩性极强的深度学习系统,受到了亚马逊和诸多高校的支持。

高级抽象库

  • Keras——一个用 Python 语言写成的高级神经网络库,运行与 TensorFlow 或 Theano 的上层。
  • Lasagne——一个可以搭建并训练神经网络的轻量级库。

Python 库

有许多的库,它们能在几乎所有的科学计算系统保持良好的运行状态。接下来,让我们马上去安装那些比较常用的库吧!

  • Pip = Python的安装程序和包管理系统
  • Pandas = 高性能的数据分析
  • Scikit-learn = 一个受欢迎并且功能强大的机器学习库
  • NumPy = 用于数字计算的Python
  • Matplotlib = 数据可视化库
  • Scipy = 数学和科学计算
  • Ipython = 交互式的Python
  • Scrappy = 网络爬虫框架
  • NLTK = 自然语言工具包
  • Pattern = 一个网络挖掘模块
  • Seaborn = 统计可视化
  • OpenCV = 一个计算机视觉库
  • Rpy2 = 一个R的接口
  • Py-graphiviz = 统计绘图
  • OpenBLAS = 线性代数

Linux 工作站安装

为了完成尖端的工作,你需要获得最新版本的 Ubuntu LTS(写这篇文章的时候是16.04)。我期待将来会有更多的关于 Red Hat 以及 Red Hat 衍生工具的教程,如 CentOS 和 Scientific Linux 的教程。但是目前 Ubuntu 仍然是深度学习的关键。我可能也会跟进以 RH 为中心的搭建过程。

通过 Rufus 把 Ubuntu 拷到 USB 储存器上。

在 UEFI 模式下进行安装。

第一次启动

第一次启动时会出现黑屏。这是因为开源的驱动程序并没有与最先进的芯片组相同步。为了弥补这个问题,你需要:

机器启动时,打开 TTY 终端:

Ctrl + Alt + F1

获得最新的 Nvidia 驱动程序并重新启动:

  • 在 TTY 终端登陆你的根帐户:
  • 运行 sudo apt-get purge nvidia-*
  • 运行 sudo add-apt-repository ppa: graphics-drivers/ppa,然后sudo apt-get update
  • 运行 sudo apt-get install nvidia-375
  • 重新启动,显示问题便解决了。

升级机器

打开一个终端,按以下方式输入:

sudo apt-get update -y

sudo apt-get upgrade -y

sudo apt-get install -y build-essential cmake g++ gfortran git pkg-config

python-dev software-properties-common wget

sudo apt-get autoremove

sudo rm -rf /var/lib/apt/lists/*

CUDA

从 Nvidia 网站下载 CUDA8。前往下载目录,安装 CUDA:

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local.deb

sudo apt-get update -y

sudo apt-get install -y cuda

把 CUDA 添加至环境变量:

echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc

echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH'>> ~/.bashrc

source ~/.bashrc

检查以确保安装的是正确版本的 CUDA:

nvcc -V

重启你的电脑:

sudo shut down -r now

检查 CUDA 安装的安装情况

首先安装 CUDA samples:

/usr/local/cuda/bin/cuda-install-samples-*.sh ~/cuda-samples

cd ~/cuda-samples/NVIDIA*Samples

make -j $(($(nproc) + 1))

请注意,该命令序列用“+1”来表示 GPU 的数量。因此,这个数字是可以更改的,应当与你实际拥有的 GPU 的数量相一致。GPU 的数量越多,安装/编译过程也越快。

运行 deviceQuery,确保它能够检测到你的显卡并通过测试:

bin/x86_64/linux/release/deviceQuery

cuDNN

cuDNN 是针对深度神经网络设计出的 GPU 计算加速库。不幸的是,你并不能从 repo 中获取到 cuDNN,必须要在 Nvidia 网站上注册才能得到。通常情况下,你要等上几个小时甚至是几天才能获得其使用权。你可以使用第4版或者第5版。在本篇教程中,我安装的是第5版。

你需要一直等待,直到安装完毕才能继续。一方面是因为其他的框架都依赖于 cuDNN,另一方面是因为安装可能会失败。

解压并复制文件:

cd ~/Downloads/

tar xvf cudnn*.tgz

cd cuda

sudo cp */*.h /usr/local/cuda/include/

sudo cp */libcudnn* /usr/local/cuda/lib64/

sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

输入如下命令来检验:

nvidia-smi

应当输出的是一些 GPU 数据。

Python

sudo apt-get install -y python-pip python-dev

sudo apt-get update && apt-get install -y python-numpy python-scipy python-nose python-h5py python-skimage python-matplotlib python-pandas python-sklearn python-sympy libfreetype6-dev libpng12-dev libopenjpeg5

sudo apt-get clean && sudo apt-get autoremove

rm -rf /var/lib/apt/lists/*

现在,利用 Pip 安装剩下的库

pip install seaborn rpy2 opencv-python pygraphviz pattern nltk scrappy

Tensorflow

pip install tensorflow-gpu

就是这样。棒极了!

测试 Tensorflow

$ python

... >>> import tensorflow as tf >>> hello = tf.constant('Hello, TensorFlow!') >>> sess = tf.Session() >>> print(sess.run(hello)) Hello, TensorFlow! >>> a = tf.constant(10) >>> b = tf.constant(32) >>> print(sess.run(a + b)) 42 >>>

OpenBLAS

sudo apt-get install -y libblas-test libopenblas-base libopenblas-dev

Jupyter

Jupyter 是一种棒呆了的代码共享形式。通过 Jupyter,你可以轻松地分享相关的代码和教程。我会在下一篇文章里详细描述它的使用过程和使用方法。

pip install -U ipython[all] jupyter

Theano

先安装 pre-requisites,再安装 Theano。

sudo apt-get install -y python-numpy python-scipy python-dev python-pip python-nose g++ python-pygments python-sphinx python-nose

sudo pip install Theano

是的,这对于 Theano 十分关键。

测试一下你安装的 Theano 是否正确。在 import 命令被执行的时候,不应当出现 warnings/errors。

python >>> import theano >>> exit()nosetests theano

Keras

Keras 是一个异常受欢迎的高级抽象包装器,可以运行于 Theano 和 Tensorflow 之上。它的安装和使用都太艰难了,一点儿都不有趣。

sudo pip install keras

Lasagne

Lasagne 是另一个被广泛使用的高级包装器,它要比 Keras 更灵活一点,因为你很容易便会把颜色涂到线外。如果说 Keras 相当于当前状态下的深度学习,那么 Lasagne 就是其要进化的下一个目标。以下链接中含有 Lasagne 的安装说明:http://lasagne.readthedocs.io/en/latest/user/installation.html

pip install -r https://raw.githubusercontent.com/Lasagne/Lasagne/v0.1/requirements.txt

MXNET

MXNET 是一种高度可伸缩框架,受到亚马逊的支持。你可以在链接http://mxnet.io/get_started/setup.html 中找到它的安装说明。用于 Python 的 MXNet 安装脚本可以在https://raw.githubusercontent.com/dmlc/mxnet/master/setup-utils/install-mxnet-ubuntu-python.sh 找到。

在 Ubuntu 上安装 MXNet

来自网站:

MXNet 目前支持 Python、R、Julia 和 Scala。对于使用 Ubuntu 操作系统的 Python 用户和R用户,MXNet 提供一套 Git Bash 脚本,可以用来安装所有需要的 MXNet 依赖包和 MXNet 库。

这个简单的安装脚本可以为 Ubuntu 12 及以上版本的电脑装配 Python 语言和 R 语言下的 MXNet。此脚本会把 MXNet 安装在你的主文件夹里。 ~/mxnet

安装 Python 语言下的 MXNet

克隆 MXNet 的源代码仓库。在终端运行以下命令,记得不要带"sudo":

git clone https://github.com/dmlc/mxnet.git ~/mxnet --recursive

我们正在运用 GPU 来进行搭建工作,因此需要在 config.mk 文件里添加以下配置:

cd ~/mxnet

cp make/config.mk .

echo "USE_CUDA=1" >>config.mk

echo "USE_CUDA_PATH=/usr/local/cuda" >>config.mk

echo "USE_CUDNN=1" >>config.mk

安装 Python 环境下的 MXNet 及其所有依赖包:

cd ~/mxnet/setup-utils

bash install-mxnet-ubuntu-python.sh

将它添加至你的路径:

source ~/.bashrc

安装 R 语言环境下的 MXNet

我们会用到 R 语言,所以赶快行动起来吧!安装R语言环境下的 MXNet 的脚本可以在 https://raw.githubusercontent.com/dmlc/mxnet/master/setup-utils/install-mxnet-ubuntu-r.sh 找到。在安装好 R 语言后,以下步骤可以调用此脚本。

首先添加R repo:

sudo echo “deb http://cran.rstudio.com/bin/linux/ubuntu xenial/” | sudo tee -a /etc/apt/sources.list

添加 R 到 Ubuntu Keyring:

gpg — keyserver keyserver.ubuntu.com — recv-key E084DAB9

gpg -a — export E084DAB9 | sudo apt-key add -

安装 R-Base:

sudo apt-get install r-base r-base-dev

安装 R-Studio(根据版本数更改命令):

sudo apt-get install -y gdebi-core

wget https://download1.rstudio.org/rstudio-0.99.896-amd64.deb

sudo gdebi -n rstudio-0.99.896-amd64.deb

rm rstudio-0.99.896-amd64.deb

现在安装 RR 下的 MXNet:

cd ~/mxnet/setup-utils

bash install-mxnet-ubuntu-r.sh

Caffe

相关的命令均来自 Caffe 网站。说实话,我也不那么常用 Caffe,很多新手教程也不会关注它,所以如果这一部分对你来说太困难的话,可以先跳过,以后再研究。

安装 prerequisites:

sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

sudo apt-get install -y --no-install-recommends libboost-all-dev

sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev

克隆 Caffe repo:

cd ~/git

git clone https://github.com/BVLC/caffe.git

cd caffe

cp Makefile.config.example Makefile.config

为了使用 cuDNN,在 Makefile 中设立标志 USE_CUDNN:= 1:

sed -i ‘s/# USE_CUDNN := 1/USE_CUDNN := 1/‘ Makefile.config

将 BLAS 的参数值修改为 open:

sed -i 's/BLAS := atlas/BLAS := open/' Makefile.config

先安装 requirements,再建立 Caffe,然后再建立测试,运行测试,并确保所有通过所有的测试。请注意,所有这些过程都需要时间。同时还要注意,“+1”代表的是搭建 Caffe 所用的 GPU 的个数,如果你用的 GPU 超过了1个,记得改一下数字。

sudo pip install -r python/requirements.txt

make all -j $(($(nproc) + 1))

make test -j $(($(nproc) + 1))

make runtest -j $(($(nproc) + 1))

构建 PyCaffe,Caffe 的 Python 接口

make pycaffe -j $(($(nproc) + 1))

添加 Caffe 至环境变量:

echo `export CAFFE_ROOT=$(pwd)` >> ~/.bashrc

echo `export PYTHONPATH=$CAFFE_ROOT/python:$PYTHONPATH` >> ~/.bashrc

source ~/.bashrc

测试一下以确保 Caffe 安装成功。在执行 import 命令时,不应当出现 warnings/errors。

ipython

>>> import caffe >>> exit()

Torch

此处的与 Torch 相关的安装说明均来自 Torch 网站。这个框架的安装过程让我非常抓狂,对于大多数人来说情况通常非常类似。

git clone https://github.com/torch/distro.git ~/git/torch — recursive

cd torch; bash install-deps;

./install.sh

Scala

sudo apt-get -y install scala

Anaconda

在 https://www.continuum.io/downloads 下载 Python3.6 下的 Anaconda。点击这个链接,同样也会看到 2.7.x 版本的安装包。

安装它:

sudo bash Anaconda3–4.3.0-Linux-x86_64.sh

不要把它添加到你的 bashrc 里,否则当你重新启动的时候,Python 会默认为 Anaconda 版本。脚本中默认的设置为“否”,你最好是保持 Ubuntu 的 Python 的默认值,因为很多东西和它息息相关。

此外你还可以自行创建环境,在版本间来回转换。

让我们创建两个 Anaconda 环境:

conda create -n py2 python=2.7

conda create -n py3 python=3.6

激活 Python 3 的环境:

source activate py3

现在让我们安装 Anaconda 的所有安装包:

conda install pip pandas scikit-learn scipy numpy matplotlib ipython-notebook seaborn opencv scrappy nltk pattern

现在让我们用 Pip 安装 pygraphviz 和 Rbridge,因为 Conda 中不包括这两者:

pip install pygraphviz rpy2

重新启动:

sudo shutdown -r now

安装 Anaconda 下的 Tensorflow、Theano 和 Keras

你需要在 Python 2 和 Python 3 两个版本的 Anaconda 下分别安装相关的库。使用这些由 Anaconda 支持的库会让的机器获得更好的性能,因为它们均包含性能优化功能。

我们先从 Python 3 开始:

source activate py3

pip install tensorflow Theano keras

关闭该环境,激活 Python 2 环境:

source deactivate

激活 Python 2 环境:

source activate py2

安装 Python 2 下的库:

pip install tensorflow Theano keras

关闭该环境:

source deactivate

现在我们回到了标准的 Ubuntu Shell,Python 2.7.x 已被搭建完成,所有为标准的 Python 安装的框架都被搭建在 Ubuntu 之上了。

总结

这样,你就得到深度梦幻机了。你已经购买了顶尖的机器,或者是成本相对较低的替代性机器,并在上面安装了深度学习所需的最新最棒的软件。

现在,尽管准备好去处理繁重的数字运算吧!找到相关的教程就开始吧!

本文作者 Daniel Jeffries 是一位作家、工程师和企业家,研究领域涵盖了从 Linux 到虚拟化和容器的各种技术。

本文由 AI100 编译,转载需得到本公众号同意。


编译:AI100

原文链接:https://hackernoon.com/learning-ai-if-you-suck-at-math-p3-building-an-ai-dream-machine-or-budget-friendly-special-d5a3023140ef


原文发布于微信公众号 - AI科技大本营(rgznai100)

原文发表时间:2017-02-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

python-pcl以及相关资料分享

PCL(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结...

78150
来自专栏PPV课数据科学社区

近期GitHub上最热门的开源项目(附链接)

来源:开源最前线 2 月份 GitHub 上最热门的开源项目又出炉了,又有哪些新的项目挤进热门榜单了呢,一起来看看。 ……………………………… 1、nocode...

37390
来自专栏影子

关于图文识别功能相关技术的大致实现

385110
来自专栏大数据文摘

数学烂也要学AI | 带你造一个经济试用版AI终极必杀器

38390
来自专栏python爬虫日记

有关python下二维码识别用法及识别率对比分析

 最近项目中用到二维码图片识别,在python下二维码识别,目前主要有三个模块:zbar 、zbarlight、zxing。

62340
来自专栏云加头条

智能云上手指南:如何使用腾讯云开放的图片鉴黄能力?

今天,腾讯云发布2017战略新品——智能云,对于普通开发者而言,现在可以通过腾讯云开发者实验室0门槛体验优图鉴黄等AI能力。

86910
来自专栏人工智能头条

6月Python热文Top10,精选自1000篇文章

11130
来自专栏Web行业观察

我是如何爱上ag-grid框架的

与每个管理系统一样,我们需要选择一个网格来显示我们的数据,而我的前任已经在应用程序中使用了两个网格 -  ag-Grid(v2.7)和Ng-Table(v0.8...

1.2K40
来自专栏华章科技

近期GitHub上最热门的开源项目(附链接)

2 月份 GitHub 上最热门的开源项目又出炉了,又有哪些新的项目挤进热门榜单了呢,一起来看看。

8720
来自专栏AI黑科技工具箱

0.伏笔:图像读取方式以及效率对比

入职了之后挺忙,已经好久没有做一些科普性的更新了。近期已做了些学术要求不高的工作,所以刚好有时间写写总结。

702110

扫码关注云+社区

领取腾讯云代金券