资讯专栏INFORMATION COLUMN

用不到1000美元攒一台深度学习用的超快的电脑

trigkit4 / 921人阅读

摘要:但是如果你和我是一样的人,你想自己攒一台奇快无比的深度学习的电脑。可能对深度学习最重要的指标就是显卡的显存大小。性能不错,不过够贵,都要美元以上,哪怕是旧一点的版本。电源我花了美元买了一个的电源。也可以安装,这是一个不同的深度学习框架。

是的,你可以在一个39美元的树莓派板子上运行TensorFlow,你也可以在用一个装配了GPU的亚马逊EC2的节点上跑TensorFlow,价格是每小时1美元。是的,这些选择可能比你自己攒一台机器要更现实一点。但是如果你和我是一样的人,你想自己攒一台奇快无比的深度学习的电脑。

好吧,一千块钱对于一个DIY项目来说是太多了。但是一旦你把机器搞定,你就能构建数百个深度学习的应用啦,从拥有增强大脑的机器人到艺术创作(至少这是我为花这些钱找的理由)。最差的理由也是,这个机器至少能轻松打败那个2800美元的Macbook Pro笔记本。除了用电多一点,所有的性能都比Macbook强。另外这台电脑很容易被升级,从而能保证它的性能可以领先笔记本好几年。

从上世纪80年代后我就再没攒过电脑。我也相当担心花好几百块,最终搞一堆我自己装不出来的零件(或是攒出来了,但可能没法正常工作)。不过我要告诉你,攒机是可以的!另外,整个过程也很好玩。最后你能拥有一台通用的电脑,并能做预测,同时比笔记本快20多倍。

下面是购买清单和一些细节建议:

主板

主板有不同的尺寸规格。因为我不想用多个GPU,所以最便宜最小的主板标准尺寸是mini-ITX,对这个项目是够用了。我的较低要求是要有一个PCIe插槽给GPU用,有两个DDR4的内存插槽。最后我买的是华硕的 Mini ITX DDR4 LGA 1151 B150I PRO GAMING/WIFI/AURA主板,在亚马逊上卖125美元。还附送了一个WiFi的天线。这对于在地下室里用这个电脑是太方便了。

机箱

机箱不太重要,也非常便宜。因为DIY电脑的主要客户都是游戏玩家,所以机箱的形状和颜色也是五花八门。机箱的尺寸应该和主板配套,所以我的机箱需要支持mini-ITX。我买的是Thermaltake Core V1 Mini ITX Cube机箱,在亚马逊上卖50美元。

内存

我不敢相信现在内存有多便宜。你需要买和主板配合的DDR4型的内存(几乎网上找到的都是这个类型),大家的价格都差不多。我用129美元买了两条8GB of Corsair Vengeance内存。

这个带LED灯的内存条让我多花了5美元,因为亚马逊的用户评价上说“对于没法在机箱里装足够多LED灯的,这个内存是较佳选择。”如果你如我一样是在地下室里攒机,也不在乎机箱里面的美感,那你肯定会非常难在机箱里找到零件。

CPU

我看了一下网上的CPU评测比较,认为比较慢的CPU应该没什么问题,因为我没什么任务是要高速CPU的(除了训练神经网络,而我会用GPU来训练)。但我也受不了一台电脑,里面有一个相对其他部件落后三代的CPU。最后我花了214美元买了Intel I5-6600 CPU。

大部分亚马逊上能找到的CPU都是合适的。我没花额外的20美元去买I5-6600K。与I5-6600型相比,除了能超频,其他功能都一样。但通过系统可靠性来换取10%的速度提升对于我来说是够疯狂的。不过我承认,在我开始想着自己攒机后,我有些后悔了。所以谁知道哪?攒机会改变你的生活样式。可能买一个可超频的CPU会少一些后悔。但另一方面,也许去除掉多余的选择能保护你自己,不会自己作死。

硬盘

我也无法相信现在硬盘有多便宜了。用50美元我买了一个1TB SATA硬盘。固态硬盘会更快,但贵很多。而且深度学习的程序一般都不会是高I/O依赖的,因为一般程序都是拉取一批数据进内存,然后算很久。如果你有很多的文件传输任务,或是仅仅是想确保比你朋友的Macbook跑应用快很多,那我会买一个固态硬盘,比如这个三星的850 EVO 250GB 2.5-Inch SATA III Internal SSD,250G的要98美元。

这些硬盘让我意识到,苹果是多么会宰人。为了Macbook Pro有250G的额外硬盘容量,你要花200美元!

显卡/GPU

选哪款显卡是最重要也是最难的问题。对于几乎所有的机器学习应用,你都需要一个英伟达的显卡,因为只有英伟达有最重要的CUDA框架和CuDNN库,所有的机器学习框架(包括TensorFlow)都依赖它们。

作为一个非GPU专家,我发现与之相关的名词术语是够让人糊涂的。但下面是非常基本的选购指标。

可能对深度学习最重要的指标就是显卡的显存大小。如果TensorFlow不能把模型和当前批次的训练数据存进GPU的显存,它就会失败并转向使用CPU,从而让GPU变成废物。

另外一个重要的考虑就是显卡的架构。英伟达依次推出的架构叫“Kepler”,“Maxwell”和“Pascal”。这些架构的主要区别就是速度。例如根据这个基准评测,Pascal Titan X的速度是Maxwell Titan X的两倍。

机器学习的大部分论文都是用的TITAN X显卡。性能不错,不过够贵,都要1000美元以上,哪怕是旧一点的版本。大部分搞机器学习且没多少预算的人都用的英伟达的GTX 900系列(Maxwell)或是GTX 1000系列(Pascal)。

想找出一块显卡的架构,你可以看看英伟达的那个极其让人混淆的命名系统:9XX卡使用的是Maxwell架构,而10XX是用的Pascal架构。但一个有更高的主频和更大的显存980可能还是比一个1060要快。

你可能必须对不同架构的英伟达GPU有所了解。但最重要的是,无论是9XX还是10XX显卡,都会比你的笔记本快一个数量级。不要被这些选项搞晕了,如果你还没有用过GPU,用它会比你现有的系统要快很多。

我买的是GeForce GTX 1060显卡,3GB显存,花了195美元。用它比我的Macbook要快近20倍。但对有些应用,它还是偶尔会出现显存内存不足的情况。所以我也许应该多花60美元来买一个GeForce GTX 1060 6GB显存版。

电源

我花了85美元买了一个650W的电源。我的经验是,电器如果电源出了问题是非常头疼也很难修的,所以不值得为此省钱。另一方面,我的系统的峰值负载从来没有超过250瓦。

散热器

我还记得我工作的第一家创业公司是把服务器放到壁橱里面的。即使隔着壁橱的门,风扇的噪声还是出奇的大。这样的日子似乎是早已过去了。不过650瓦的电源让你的机器耗能是笔记本的10倍,而能量总是要找到一个出口的地方。可能不是必须的,但是我还是用35美元买了一个超级的散热器——Master Hyper 212 EVO。这让CPU始终运行在低温状态,且系统超级安静。

概览

要最后能用,你还需要有显示器、鼠标和键盘。这些东西一般容易搞到(我的地下室里到处都是)。合计价格是883美元,因此想花1000美元的话,还能再升级一些东西。

装机

所有包裹都到齐后我是相当的兴奋,然后我发现装机是容易,但靠不住。花了我大概一个小时,按照每个部件的说明书就把电脑组装起来了。最后却点不亮。我不得不更换了主板,相当沮丧但还OK。

第二次组装时,我把所有的部件放在一个纸箱子上连接起来,先确定是不是都能正常工作。

图1 放在桌子上的半成品电脑,只连接了最少的部件来测试

图2 装上超大散热器后的电脑,看起来很恐怖

图3 从上面看下去,硬盘已经装进去了

启动电脑

安装版本的Ubuntu会让你的生活变得容易得多,因为新版本支持几乎所有的深度学习的软件。你可以把一个镜像存到一个USB盘里,然后按照它的简单的一步一步指导来安装。在上世纪90年代,我需要和各种驱动程序去斗争来安装Linux桌面,不过现在的安装过程已经变得超级容易。

新的Ubuntu操作系统也非常的棒。我现在经常使用我自己组装的这台电脑。拥有大内存、相对快速的CPU和轻量级的操作系统,它是我家里最快的计算机。

安装CUDA、OpenCV和TensorFlow

为了能用你的超酷的深度学习机器,你需要先安装CUDA和CudNN。的CUDA版本是8.0,CudNN是5.1。从抽象的角度看,CUDA是一个API和编译器,能让其他的程序为通用应用使用GPU。而CudNN则是一个库,主要设计来让神经网络在GPU上跑的更快。你需要从英伟达的官网NVIDIA website上下载这两个软件。

OpenCV 是一个开源的库,很多应用使用它来做图像处理。现在的版本3.1和的CUDA版本不兼容。你可以通过设置CUDA_GENERATION标志成Kepler、Maxwell或是Pascal(取决于你买的GPU型号)来让他们兼容。下面是下载OpenCV和安装设置它的命令序列:

git clone https://github.com/opencv/opencv.git

&& cd opencv

&& mkdir build

&& cd build

&& cmake ..

&& make -j3

&& make install

最后,安装TensorFlow变成了这些天里最简单的工作。只要按照这个网站上的说明操作就行了。

想看看GPU的支持是不是成功,你可以运行这个TensorFlow的测试程序,或是执行下面的命令:

python -m tensorflow.models.image.mnist.convolutional

这应该能开始运行一个模型而没有报错。

有趣的部分来了!

现在你已经花了近1000美元和无数的时间来装机和装软件,是时候回收你的投资啦!GPU让程序运行的非常快,所有你需要一些能利用这个速度的应用。幸运的是有很多有趣的事情可以干。

实时识别附近的物品

装一个便宜的USB摄像头或是带有摄像头的树莓派板子在你家外面。你就能用我在之前的100美元的TensorFlow机器人里所介绍的RPi摄像头模块来很容易地制作一个树莓派派视频流应用。

YOLO

YOLO包能完成拍摄同时的实时物体识别。用Macbook的话,我发现物体识别需要3到4秒。但用GPU的话,我能得到一个实时的结果,而且准确率是非常高。

按这个YOLO_tensorflow 项目的介绍,可以很容易地使用YOLO模块运行在TensorFlow上。也可以安装“Darknet”,这是一个不同的深度学习框架。YOLO最初就是设计来用于它的。

git clone https://github.com/pjreddie/darknet

cd darknet

make

Darknet安装完后,你可以用下面的命令来让它处理图像:

./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg

因为树莓派摄像头仅仅只是把文件放到一个Web服务器上,你可以直接让Darknet去连接那个文件来做实时流里的物体识别。

给你的树莓派机器人一个增强的大脑

我之前写的这个《只要100美元的TensorFlow机器人》里,我发现可以在只值30美元的硬件上运行和应用深度学习。不幸的是,最让我失望的事情是机器人要花好几秒才能完成物体识别,因此让机器人做实时的决策就不行了。现在如果机器人用这个新的GPU机器,就不仅仅能做实时物体识别,还能每秒处理大概12-20帧的图像。

如果你依据我在GitHub上的这个说明,你就能攒一个机器人出来,让它从摄像头里获取容易处理的视频流。

我的朋友Shawn Lewis教会了我这篇文章里所需的大部分技能,所以我把我的两个树莓派机器人拿到了他的办公室。他和其他很多机器人专家有一个梦想,就是让机器人能给他们拿啤酒。

如果你仔细看视频开始部分里的电脑显示器画面,就会发现Shawn的这个电脑实际上是用它的GeForce 980显卡在为两个机器人拍摄的视频做实时的物体识别。他宣称他的这块显卡可以同时处理四路视频输入而不会内存溢出。

搞点艺术创作

你可以用神经网络干的好玩的事情之一就是复制谷歌的Deep Dream干的事情。尽管你可以不用GPU也能完成,但会花很长的时间。本质上讲,这个事就是修改输入的图片来找到神经元里得到较大反馈的图片,因此这个任务有非常大的计算量。有很多种方式来完成修改,结果一般都非常的诡异和酷。

一个直接能用的很好的教程就是谷歌公开的这个Deep Dream 代码。

你需要安装Jupyter notebook服务器(你总是需要的!)和Caffe。

接着按照谷歌的教程把你的朋友的脸插进去。使用这个新的机器,新的图片只用几分钟就出来了,而不是好几小时。修改出来的图片是很好玩的。

图4 我的邻居Chris Van Dyke和Shruti Gandhi站在我的车库里,照片被我的Deep Dream程序给涂鸦了一把

图5 我朋友Barney Pell和他的国际象棋生日蛋糕

图6 这是我运行Deep Dream程序的机器自己的图片。看起来像是满屏都是狗(可能是因为训练这个模型的ImageNet数据里面都是狗的图片。ImageNet数据集里面包括了120多种不同的狗)

如果你想搞更疯狂的事,这里是基于Deep Dream由TensorFlow实现的Neural Style。出来的效果更神奇,你可以在这个脑洞大开的博文里看到部分的成果。

总结

你不需要花好几千美元来买一个比笔记本快的深度学习机器。自己攒一台并让它能运转正常是很有意思的经历,而且这个电脑是可升级的。现在我已经把显卡换成了一个具有相同架构的Titan X,这样所有的程序都不用再次编译。

总体来说,赚了。这个机器和亚马逊的每小时1美元的P2实例跑的一样快。P2实例用的是K80的显卡,显存大一点不过是旧的架构。我主要用这个机器做模型训练,这也是这么做的主要目的。嗯,这可能成为下一篇博文的题目。

Lukas Biewald

Lukas Biewald是CrowdFlower的创始人兼CEO。CrowdFlower始于2009年,是一个数据增强的平台,可以帮助企业获得随需的人力来收集、产生训练数据,以及参与人-机器学习循环的工作。 在从斯坦福大学拿到数学学士和计算机科学硕士学位后,Lukas领导了雅虎日本的搜索相关团队。随后他去了Powerset,作为一个资深数据科学家进行工作。2008年Powerset被微软收购。Lukas还被《公司》杂志评选为30位30岁以下的著名人士。 Lukas还是一位专家级的围棋选手。

欢迎加入本站公开兴趣群

商业智能与数据分析群

兴趣范围包括各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识

QQ群:81035754

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/4467.html

相关文章

  • 深度机器习未来将怎样改变人类生活

    摘要:年实验室团队采用了深度学习获胜,失败率仅。许多其他参赛选手也纷纷采用这一技术年,所有选手都使用了深度学习。和他的同事运用深度学习系统赢得了美元。深度学习,似乎是解决 三年前,在山景城(加利福尼亚州)秘密的谷歌X实验室里,研究者从YouTube视频中选取了大约一千万张静态图片,并且导入到Google Brain —— 一个由1000台电脑组成的像幼儿大脑一样的神经网络。花费了三天时间寻找模式之...

    Harpsichord1207 评论0 收藏0
  • 深度习之父的传奇人生

    摘要:随后深度学习的研究大放异彩,广泛应用在了图像处理和语音识别领域。比如的学生就用深度学习算法赢得年的。深度学习和人工智能的春天离人工智能最近的互联网公司敏锐嗅到了这一机遇。 多伦多大学计算机系教授Geoffrey Hinton是Deep Learning的开山鼻祖,我们来讲讲他的故事。他有个传奇的姑姑不过先来说说他姑姑吧,他姑姑Joan Hinton是一个与中国有关的具有传奇经历的人物,中文名...

    Jinkey 评论0 收藏0
  • 2017年3月份前端资源分享

    平日学习接触过的网站积累,以每月的形式发布。2017年以前看这个网址:http://www.kancloud.cn/jsfron... 03月份前端资源分享 1. Javascript 175453545 Redux compose and middleware 源码分析 深入 Promise(二)——进击的 Promise Effective JavaScript leeheys blog -...

    ermaoL 评论0 收藏0
  • 2017年3月份前端资源分享

    平日学习接触过的网站积累,以每月的形式发布。2017年以前看这个网址:http://www.kancloud.cn/jsfron... 03月份前端资源分享 1. Javascript 175453545 Redux compose and middleware 源码分析 深入 Promise(二)——进击的 Promise Effective JavaScript leeheys blog -...

    kamushin233 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<