首页 > 人工智能 > 在Data Science Experience(DSX) 上使用BigDL在Spark上进行深度学习

[悬赏]在Data Science Experience(DSX) 上使用BigDL在Spark上进行深度学习 (已翻译100%)

查看 (273次)
英文原文:Using BigDL in Data Science Experience for Deep Learning on Spark
标签: 人工智能
admin 发布于 2018-02-01 13:42:13 (共 6 段, 本文赏金: 19元)
参与翻译(1人): greenflute 默认 | 原文

【已悬赏】 赏金: 2元

近些年,深度学习已然成为机器学习领域中最流行的技术了。而DSX(数据科学经验)小组在他们去年启动以前,就已经为深度学习兴奋不已了(参见一下博文 DL趋势在DSX中使用DL)。

作为一个数据科学平台,我们通过给所有的用户分配一个Spark集群,使得用户们的分析工作可以很方便的扩充。在DSX,无论是使用 notebooks 还是 RStudio,你都可以访问这个集群以分发任务。知道最近,人们还无法在深度学习中使用Spark批处理,因为这需要大量的工作来优化Spark的运算引擎以进行深度学习神经网络的训练。而Intel的BigDL框架在这个问题上作出了巨大的贡献。本文将阐述什么是BigDL以及BigDL是如何在DSX中运用的。

greenflute
翻译于 2018-02-12 17:35:57
 

参与本段翻译用户:
greenflute

显示原文内容

【已悬赏】 赏金: 5元
什么是 BigDL

BigDL 是一个Apache Spark的分布式深度学习框架,由Intel开发并贡献给开源社区,以期统一大数据的处理和深度学习(参见 github.com/intel-analytics/BigDL). 基于高度可扩容的Apache Spark平台,BigDL 可以很容易地扩充到上百甚至上千台服务器。而且 BigDL 使用了 Intel的数学库 (Intel MKL)以及并行技术,可以在安装了 Intel Xeon 处理器的服务器上达到可以媲美主流GPU的高性能。

BigDL 通过使大数据社区的开发者得以继续使用熟悉的工具和基础设施,使得深度学习更容易使用。 BigDL 支持众多深度学习模型 (例如对象识别,分类,等等);而且它还可以让我们重用或者迁移预先训练好的模型(Caffe, Torch, TensorFlow, 等等), 从而可以把这些原先仅限于特定框架和平台的模型,通过BigDL用于通用大数据分析平台。这样,整个应用流水线得以充分优化,从而能提供更加出色的性能。


如下图所示, BigDL 被实现为一个Spark库, 用户可以像写标准Spark程序一样写深度学习程序。从而可以将BigDL与其他Spark库无缝集成,比如查询语言和数据帧,数学库流水线,

Spark SQL 和 DataFrames, Spark ML 流水线, Spark Streaming, Structured Streaming, 等等,而且可以直接运行于现有的 Spark 或 Hadoop 集群上。


greenflute
翻译于 2018-07-21 10:45:24
 

参与本段翻译用户:
greenflute

显示原文内容

【已悬赏】 赏金: 2元

 BigDL v0.3.0 版的亮点:


自2016年12月最初的版本发布之后,BigDL已经被用于构筑各种诸如反欺诈,推荐系统,图像识别和众多其他目的的应用。最新发布的 v0.3.0 版响应众多用户的请求,提升了可用性并增加了新的特性和功能:


o.RNN 编码解码器 (序列到序列) 架构


o.变种自动编码器


o.3D反卷积


o.1D卷积和池化


o.模型量化支持


o.现有模型的量化 (BigDL, Caffe, Torch or TensorFlow) 


o.模型引用中转换浮点数为整型 (缩小模型体积以及引用提速)


o.稀疏张量和层,有效的支持稀疏数据

greenflute
翻译于 2018-07-21 10:53:35
 

参与本段翻译用户:
greenflute

显示原文内容

【已悬赏】 赏金: 4元

当 BigDL 遇到  DSX:绝妙组合

由于 DSX 的 notebooks 已经在 Spark 集群上运行,运行 BigDL 也很容易。唯一需要的工具就是 Data Science Experience notebook。按以下步骤安装 BigDL 并确认其工作正常。以后的博文中我们将给出一些教程。

在 IBM DSX 上安装 BigDL 指南:

本节内容取自 Roland Weber 在 StackOverflow 上的文章,你可以使用这个 notebook 来设置 BigDL。

如果你的 notebooks 是在 DSX 上以 Apache Spark 的服务器实例作为后端,安装 BigDL 就非常简单,但你必须先确认几个版本信息:

  1. Spark 版本?当前支持版本是 2.1。
      使用 Python,每个服务只能安装对应与一个Spark版本的BigDL。
  2.  BigDL 版本?当前最新版本是 0.3.0,支持 Spark 2.1.
      如果有疑问可以参考 下载页,其中 Spark 修订版本并不重要。

使用这些信息,就可以确定所需要的BigDL JAR 库的链接,例如对于 BigDL 0.3.0 和 Spark 2.1,下载链接就是:
 https://repo1.maven.org/maven2/com/intel/analytics/bigdl/bigdl-SPARK_2.1/0.3.0/bigdl-SPARK_2.1-0.3.0-jar-with-dependencies.jar

对于其他版本,可以在链接中替换 0.3.0 以及 2.1 为其他版本号,路径替换一次,文件名替换一次。

greenflute
翻译于 2018-02-13 09:20:12
 

参与本段翻译用户:
greenflute

显示原文内容

【已悬赏】 赏金: 4元

在Python下的安装

你需要JAR文件以及对应的Python包。Python包只取决于BigDL的版本,而不是Spark版本。可以在Python notebook中直接安装:

  1. 安装JAR文件
!(export sv=2.1 bv=0.3.0 ; cd ~/data/libs/ && wget https://repo1.maven.org/maven2/com/intel/analytics/bigdl/bigdl-SPARK_${sv}/${bv}/bigdl-SPARK_${sv}-${bv}-jar-with-dependencies.jar)

这里把Spark和BigDL的版本都通过环境变量定义了,所以你无需修改URL。

    2. 安装Python模块

!pip install bigdl==0.3.0 | cat

如果你的notebooks要在多个不同的Python版本下运行,则每个Python版本下都要执行一次。

重启 notebook 内核之后,BigDL就可以用了。

(不要) 在Scala下安装

如果你想上面所描述的在Python下安装了JAR文件,则在Scala内核下也可以使用。

而如果你只是在Scala下使用 BigDL,那么最好不要安装JAR文件,而是在notebook的开头使用 %AddJar 魔法。最好是在第一个代码单元,以避免加载方面的问题。

%AddJar https://repo1.maven.org/maven2/com/intel/analytics/bigdl/bigdl-SPARK_2.1/0.3.0/bigdl-SPARK_2.1-0.3.0-jar-with-dependencies.jar

通过避免安装JAR,你可以在不同的Scala notebook下共享同一个服务且灵活地使用不同的Spark以及BigDL版本。而一旦安装了JAR,则安装了的版本就很容易和通过%AddJar导入的版本发生冲突。

greenflute
翻译于 2018-02-13 11:16:58
 

参与本段翻译用户:
greenflute

显示原文内容

【已悬赏】 赏金: 2元

按照上面的指令不出意外的话你就可以开始使用BigDL开始在DSX的Spark上训练你的深度网络了。如果你更倾向于用Python notebook来完成所有的步骤,你可以直接复制DSX开发小组的notebook。你可以直接使用右上角的复制图标把这个notebook复制进项目;这样可以让你在DSX的Spark集群中运行这些代码。

这个 notebook 还提供了一些使用 BigDL 框架的基础代码。请留意我们后续的关于如何训练模型的文章。如果你愿意看几个关于反欺诈,判例分析以及若干其他训练模型,欢迎访问我们的BigDL模型动物园: https://github.com/intel-analytics/analytics-zoo

greenflute
翻译于 2018-02-13 11:24:52
 

参与本段翻译用户:
greenflute

显示原文内容

GMT+8, 2018-9-23 03:31 , Processed in 0.040602 second(s), 11 queries .