Apache Spark + Intel Analytics Zoo 进行深度学习

简介: Analytics Zoo 是由 Intel 开源,基于 Apache Spark 和 Inte BigDL 的大数据分析和 AI 平台,方便用户开发基于大数据、端到端的深度学习应用。本文简单介绍了如何在阿里云 E-MapReduce 使用 Analytics Zoo 来进行深度学习。

Analytics Zoo 是由 Intel 开源,基于 Apache Spark 和 Inte BigDL 的大数据分析和 AI 平台,方便用户开发基于大数据、端到端的深度学习应用。本文简单介绍了如何在阿里云 E-MapReduce 使用 Analytics Zoo 来进行深度学习。

简介

Analytics Zoo是由 Intel 开源,基于Apache Spark 和 Inte BigDL 的大数据分析和AI平台,方便用户开发基于大数据、端到端的深度学习应用。

系统要求

  • JDK 8
  • Spark 集群(推荐使用EMR支持的 Spark 2.x)
  • python-2.7(python 3.5,3.6 也支持),pip

安装Analytics Zoo

  • Analytics Zoo 最新的 release 版本是 0.2.0
  • 安装Scala

    • 下载 pre-build 版本,可以从 github,analytics 主页下载到pre-build版本

      • 通过 script build,安装 Apache Maven,设置 Maven 环境:
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"

如果使用 ECS 机器进行编译,推荐修改 Maven 仓库 mirror:

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

下载 Analytics Zoo release版本,解压后在目录下运行:

bash make-dist.sh

build 结束后,在 dist 目录中包含了所有的运行环境。将 dist 目录放到 EMR 软件栈运行时统一目录:

cp -r dist/ /usr/lib/analytics_zoo
  • 安装python
    Analytics Zoo 支持 pip 安装和非 pip 安装,pip 安装会安装 pyspark,bigdl等,由于EMR 集群已经安装了 pyspark,通过 pip 安装有可能引起冲突,所以采用非 pip 安装。

    • 非 pip 安装
      首先要运行:
bash make-dist.sh

进入 pyzoo 目录,安装 analytcis zoo:

python setup.py install
  • 设置环境变量
    在 scala 安装结束后将 dist 目录放到了 EMR 软件栈统一目录,然后设置环境变量。编辑 /etc/profile.d/analytics_zoo.sh,加入:

试用

export ANALYTICS_ZOO_HOME=/usr/lib/analytics_zoo
export PATH=$ANALYTICS_ZOO_HOME/bin:$PATH

EMR 已经设置了 SPARK_HOME,所以无需再次设置。

使用Analytics Zoo

  • 使用 Spark 来训练和测试深度学习模型

    • 使用 Analytics Zoo 来做文本分类,代码和说明在github。根据说明下载必须的数据。提交命令:
spark-submit --master yarn \
--deploy-mode cluster --driver-memory 8g \
--executor-memory 20g --class com.intel.analytics.zoo.examples.textclassification.TextClassification \
/usr/lib/analytics_zoo/lib/analytics-zoo-bigdl_0.6.0-spark_2.1.0-0.2.0-jar-with-dependencies.jar --baseDir /news
  • 通过 ssh proxy来查看Spark运行详情页面。
    image

同时查看日志,能够看到每个epoch的accuracy信息等。

INFO optim.DistriOptimizer$: [Epoch 2 9600/15107][Iteration 194][Wall Clock 193.266637037s] Trained 128 records in 0.958591653 seconds. Throughput is 133.52922 records/second. Loss is 0.74216986.
INFO optim.DistriOptimizer$: [Epoch 2 9728/15107][Iteration 195][Wall Clock 194.224064816s] Trained 128 records in 0.957427779 seconds. Throughput is 133.69154 records/second. Loss is 0.51025534.
INFO optim.DistriOptimizer$: [Epoch 2 9856/15107][Iteration 196][Wall Clock 195.189488678s] Trained 128 records in 0.965423862 seconds. Throughput is 132.58424 records/second. Loss is 0.553785.
INFO optim.DistriOptimizer$: [Epoch 2 9984/15107][Iteration 197][Wall Clock 196.164318688s] Trained 128 records in 0.97483001 seconds. Throughput is 131.30495 records/second. Loss is 0.5517549.
  • 在 Analytics Zoo 中使用pyspark 和 Jupyter 来进行深度学习训练

    • 安装 Jupyter
pip install jupyter

-使用以下命令启动:

jupyter-with-zoo.sh

-使用 Analytics Zoo,推荐采用内置的 Wide And Deep 模型来进行。

  1. 导入数据
    image
  2. 定义模型和优化器
    image
  3. 进行训练
    image
  4. 查看训练结果
    image

image

相关实践学习
数据湖构建DLF快速入门
本教程通过使⽤数据湖构建DLF产品对于淘宝用户行为样例数据的分析,介绍数据湖构建DLF产品的数据发现和数据探索功能。
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
相关文章
|
4天前
|
机器学习/深度学习 分布式计算 监控
如何解决Spark在深度学习中的资源消耗问题?
【5月更文挑战第2天】如何解决Spark在深度学习中的资源消耗问题?
28 5
|
4天前
|
机器学习/深度学习 缓存 分布式计算
Spark在深度学习中的优缺点是什么?
【5月更文挑战第2天】Spark在深度学习中的优缺点是什么?
21 2
|
机器学习/深度学习 Web App开发 分布式计算
继Spark之后,UC Berkeley 推出新一代高性能深度学习引擎——Ray(1)
继Spark之后,UC Berkeley 推出新一代高性能深度学习引擎——Ray(1)
334 0
继Spark之后,UC Berkeley 推出新一代高性能深度学习引擎——Ray(1)
|
存储 Web App开发 机器学习/深度学习
继Spark之后,UC Berkeley 推出新一代高性能深度学习引擎——Ray(2)
继Spark之后,UC Berkeley 推出新一代高性能深度学习引擎——Ray(2)
288 0
继Spark之后,UC Berkeley 推出新一代高性能深度学习引擎——Ray(2)
|
机器学习/深度学习 存储 分布式计算
BigDL:Apache Spark 上的分布式深度学习库
BigDL是 Apache Spark 的分布式深度学习库;使用 BigDL,用户可以将他们的深度学习应用程序编写为标准 Spark 程序,这些程序可以直接运行在现有的 Spark 或 Hadoop 集群之上。为了轻松构建 Spark 和 BigDL 应用程序,为端到端分析 + AI 管道提供了高级Analytics Zoo。
BigDL:Apache Spark 上的分布式深度学习库
|
机器学习/深度学习 人工智能 分布式计算
5月14日Apache Spark中国社区技术直播【Analytics Zoo上的分布式TensorFlow训练AI玩FIFA足球游戏】
近年来,由于对通用人工智能研究的潜在价值,训练AI玩游戏一直是一个火热的研究领域。FIFA实时视频游戏场景复杂,需要结合图像,强化学习等多种不同的AI技术,同时也要求agents响应有实时性,因此是一个非常好的试验场,可以用来探索不同类型的AI技术。本次分享主要介绍我们在训练AI玩FIFA视频游戏方面的一些工作。
5月14日Apache Spark中国社区技术直播【Analytics Zoo上的分布式TensorFlow训练AI玩FIFA足球游戏】
|
机器学习/深度学习 人工智能 分布式计算
4月29日Spark社区直播【用Analytics-Zoo实现基于深度学习的胸腔疾病AI诊疗辅助】
本次分享主要介绍如何利用Analytics Zoo和NIH胸部X光影像数据集,在Apache Spark集群上实现基于深度学习的胸腔疾病分类,为医生提供端到端的胸腔疾病AI诊疗辅助。
4月29日Spark社区直播【用Analytics-Zoo实现基于深度学习的胸腔疾病AI诊疗辅助】
|
机器学习/深度学习 分布式计算 Spark
钉钉群直播【MLFlow和spark在机器学习方面的进展、Project Hydrogen和spark在深度学习方面的进展 】
直播主题:【MLFlow和spark在机器学习方面的进展、Project Hydrogen和spark在深度学习方面的进展 】 时间:6月19日 19:30-20:30 分享嘉宾:江宇,阿里云EMR技术专家。
|
1天前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之遇到报错:Apache Kafka Connect错误如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
12 5
|
1天前
|
SQL 关系型数据库 MySQL
实时计算 Flink版操作报错合集之报错:org.apache.flink.table.api.validationexception如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
8 1

推荐镜像

更多