如何搭建你自己的“深度学习”机器?
深度学习是一门用来解决复杂问题的技术,例如自然语言处理和图像处理。目前,我们已经可以很快的处理超大计算量的问题——这多亏了GPU,GPU最初就是用于快速生成高分辨率计算机图像,由于它的计算效率使得其非常适合用于深度学习算法。原先需要用好几周才能分析出来的结果,现在几天时间就能完成。
虽然现在的计算机都有GPU,但是并不是所有的GPU都适合用来进行深度学习。对于那些不能深度学习功能的GPU,本文将会一步一步的教大家如何构建一个自己的深度学习机器。
深度学习系统本质上是在另一台电脑上安装一个具有深度学习的GPU。GPU是普通计算机和深度学习机器的主要区别。
首先,检测下你的GPU型号是否有在这个网站中列出,继续阅读下文,你就会知道如何用小于$1.5k的花费来装备你的机器。
购买硬件
这个部分,我们来列出构建深度学习机器需要用到的主要设备。如果你对电脑硬件知识不了解或者你觉得这样太费时间。你可以去实体店里购买这些,或者让店里的人给你配。以下列出来的价格是2016年3月,在美国的价格。总共花费$1285,这也是我们参加比赛得到的资助。
主板
主板是结合其他组件,使他们之间的沟通协调。这是一个印刷电路板。
中央处理器(CPU)
执行计算能力,就像人的大脑,安装在主板上。
随机存取存储器(RAM)
快速检索信息,安装在另一个主板上
$115 – 16GB (2x8GB), Corair Vengeance DDR4 DRAM 2400MHz
图像处理器(GPU)
为深度学习提供一个密集的计算能力。我们选择的GPU是GTX970,我们买了个小型的,这样方便携带。另外一个老一点的GPU,GTX770,可以构建一个深度学习模型在33分钟内完成20次迭代。这样的话,我们的机器比预期的更快了些。
$415 – 4GB, Gigabyte GTX970 ITX GDDR5
电源供应设备(PSU)
电源
$75 – 550W, Cooler Master G550M
硬盘(HDD)
提供永久,大容量存储
$160 – 4TB, Western Digital Blue 5400 RPM
CPU 冷却器
就是CPU风扇啦 $35 – Cooler Master GeminII M4
Case
带USB接口的其他的一些配件 $50 – Cooler Master Elite 110
Assembly
$25 – 店内服务安全,连接组件。
组装完后,连接上显示器,鼠标和键盘就能用了。
软件安装
第一步:安装ubuntu
Ubuntu是一个开源系统,我们的深度学习机器就是运行在上面的。简单的安装方法是,用另一台电脑下载好系统,放在USB中。然后,在深度学习机器中插入该USB,进行系统的安装。
具体的安装过程就不讲了,大家可以百度查下。
第二步:安装深度学习相关软件
Nvidia 是一家生产GPU的公司,他们一家有一套用于深度学习的框架Digits。在安装Digits之前,我们需要先安装一些依赖的软件。
首先我们需要安装驱动,该驱动深度学习软件访问GPU资源。在按Ctrl+Alt+T调出终端
在Ubuntu 14.04中,Nvidia驱动是官方库中自带的。虽然在官方库中的版本可能较NVIDIA网站上的老些,但是他们通常都更稳定些,而且是由社区进行测试的。我们建议直接使用Ubuntu库自带的就好。
搜索最新版本nvidia进行安装:
apt-cache search nvidia
得到的结果可能是像”nvidia-xxx”这样的,其中的xxx就是响应的版本号,选择一个最新的就行,例如,我们选的是 nvidia-352 。
其中,额外安装的包nvidia-modprobe和nvidia-settings会让以后的升级安装更容易些。
第三步:安装CUDA和Digits
CUDA是一个可以让GPU执行任务的平台,可以提高它的运行效率。Digits是深度学习的界面展示。你可以用这个界面上传数据,建立模型并且预测趋势。
当安装成功,打开您的浏览器并访问http://localhost。您应该看到如下所示的一个网页:
如果遇到错误,请参考故障排除部分官方安装指南。
运行分析
Nvidia的Digits是一个友好的平台,允许你使用深度学习技术训练预测模型。下面的视频提供了一个从上传数据到做出预测的综合演示的整个过程,大家伙儿自己访问外国网站看https://youtu.be/dgxe15vCR7s
结论
就是这样。你就建立起了一个深度学习机器。
如果你是刚开始学习深度学习技术,你也可以现在云平台上先学习,用google的机器学习平台:https://cloud.google.com/products/machine-learning/,真不好意思,又要访问外国网站。不过,如果你有自己的GPU来运行分析,就可以更快速更灵活的调整你的运行参数。
*参考来源:annalyzin.wordpress,FB小编东二门陈冠希编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)
- 深入剖析ASP.NET的编译原理之二:预编译(Precompilation)
- Nodejs学习笔记(十六)--- Pomelo介绍&入门
- 美团再出幺蛾子,启动美团打车项目,滴滴感到威胁了吗?
- 深入剖析ASP.NET的编译原理之一:动态编译(Dynamical Compilation)
- 深入剖析ASP.NET的编译原理之一:动态编译(Dynamical Compilation)
- 域名quco.com近10万元被交易
- Silverlight本地化
- Nodejs学习笔记(五)--- Express安装入门与模版引擎ejs
- Silverlight本地化
- Silverlight 3 创建一个简单的Behavior
- Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识
- Silverlight 3.0 中的 Local Connection
- 学习Spark——那些让你精疲力尽的坑
- 学习Spark——那些让你精疲力尽的坑
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法