开源深度学习库BigDL在阿里云E-MapReduce上的实践

本文涉及的产品
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 近些年来机器学习中的子领域深度学习成为一个热门的话题。本文要介绍Intel开源的深度学习框架BigDL,它也是在Spark上的一个算法库,提供了全面的深度学习算法支持,包括数值计算(Tensor)和高阶神经网络等。

近些年来机器学习中的子领域深度学习成为一个热门的话题,特别是在围棋领域,谷歌的AlphaGo也使用了深度学习的技术。

在大数据领域,Spark MLlib是一个很流行的机器学习算法库,如果你想用Spark来做深度学习训练,MLlib还无法很好的支持。本文要介绍Intel开源的深度学习框架BigDL,他也是在Spark上的一个算法库,提供了全面的深度学习算法支持,包括数值计算(Tensor)和高阶神经网络等。

因为BigDL是在Spark上运行的,借助Spark平台的分布式扩展性,可以方便的扩展到上百或上千个节点。同时BigDL利用了Intel MKL等先进的数学计算库,基于Intel CPU计算能力可能取得媲美GPU的性能。

BigDL的使用场景

BigDL可能使用在下列场景中:

  1. 直接在Hadoop或Spark平台上使用深度学习进行大数据分析,同时数据是存储在HDFS、HBase、Hive等文件系统或数据库上;
  2. 希望在Spark程序或工作流中加入深度学习功能;
  3. 利用现有的 Hadoop/Spark 集群来运行深度学习程序,然后将代码与其他的Spark应用场景进行动态共享,例如ETL、数据仓库(Spark SQL)、功能引擎、经典机器学习(MLlib)、图分析(GraphX)等。

E-MapReduce

阿里云的EMR服务提供了全面的开源大数据组件的支持,比如Hadoop、Spark、HBase等。EMR提供了一个完整的Spark运行环境,所以BigDL也可以很方便的在EMR集群内运行。

BigDL安装

当前EMR还未直接支持BigDL,所以需要我们自己在EMR节点上编译和安装BigDL组件。在不久的未来,EMR上可能会直接安装BigDL,这样EMR用户就可以和Spark MLlib一样直接使用BigDL了。

  1. 通过SSH登录EMR Master节点,参考EMR文档
  2. 环境准备(我们假设EMR环境上的Spark是2.0.x)

    1. 下载并安装Maven
    2. 因为BigDL所在的Maven库需要用HTTPS连接,为了让OpenJDK支持,需要额外安装包:sudo yum install nss
  3. 参考BigDL build文档编译:

    1. git clone https://github.com/intel-analytics/BigDL.git
    2. cd BigDL
    3. bash make-dist.sh -P spark_2.0

如果上述过程执行成功,Build得到的BigDL/dist目录里有我们需要的运行环境,包括作业提交脚本和jar包等。

运行一个BigDL的样例

在BigDL在EMR的Master节点上安装好之后,我们可以来运行一个简单的深度学习算法(详情请参考BigDL官方文档)。这是一个在MNIST数据集上的LeNet-5模型训练算法,模型可以用来识别手写的数字。

  1. 数据准备,从http://yann.lecun.com/exdb/mnist/下载训练模型数据和测试数据特征文件以及label文件,并且解压缩放到本地的./data/mnist目录
  2. 创建模型的checkpoint目录./model/lenet_model
  3. 训练:
./dist/bin/bigdl.sh -- \
spark-submit \
--master yarn \
--executor-cores 2 \
--total-executor-cores 16 \
--driver-class-path dist/lib/bigdl-0.2.0-SNAPSHOT-jar-with-dependencies.jar \
--class com.intel.analytics.bigdl.models.lenet.Train \
dist/lib/bigdl-0.2.0-SNAPSHOT-jar-with-dependencies.jar \
-f ./data/mnist \
-b 128 \
--checkpoint ./model/lenet_model > traing.log

(更多的参数请参考BigDL文档

这是在Spark上的作业,可以通过WebUI看到作业运行进度:
_2017_04_05_17_37_27

最后,测试训练结果:

./dist/bin/bigdl.sh -- \
spark-submit \
--master yarn \
--executor-cores 2 \
--total-executor-cores 16 \
--class com.intel.analytics.bigdl.models.lenet.Test \
dist/lib/bigdl-0.2.0-SNAPSHOT-jar-with-dependencies.jar \
-f ./data/mnist \
--model ./model/lenet_model \
-b 128 > test.log

traing.log和test.log文件分别包含了训练的过程和测试的结果。我们可以用分析工具(比如Linux Shell工具或微软的Excel)来分析结果数据,来更好的了解训练模型。

这是某次使用Lenet-5训练MNIST的结果:
_2017_04_05_18_02_18

_2017_04_05_18_02_26

总结

本文是深度学习框架BigDL的入门介绍,目的是在EMR上运行一个真实的深度学习算法。当然,你看可以基于BigDL框架实现自己的深度学习算法,或者使用EMR notebook(Apache Zeppelin或交互式工作台)直接使用分析和训练模型。你可以关注E-MapReduce产品博客获取更多的Spark和BigDL实践文章。

相关实践学习
基于EMR Serverless StarRocks一键玩转世界杯
基于StarRocks构建极速统一OLAP平台
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
目录
相关文章
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习的奥秘:从理论到实践
【9月更文挑战第14天】本文将深入探讨深度学习的核心概念,包括其理论基础、关键技术和实际应用。我们将通过代码示例,展示如何在实践中应用深度学习技术,以解决实际问题。无论你是深度学习的初学者,还是已经在该领域有所建树的专业人士,这篇文章都将为你提供新的视角和深入的理解。
|
1天前
|
机器学习/深度学习 人工智能 算法
深度学习中的卷积神经网络(CNN)入门与实践
【9月更文挑战第19天】在这篇文章中,我们将探索深度学习的一个重要分支——卷积神经网络(CNN)。从基础概念出发,逐步深入到CNN的工作原理和实际应用。文章旨在为初学者提供一个清晰的学习路径,并分享一些实用的编程技巧,帮助读者快速上手实践CNN项目。
|
7天前
|
机器学习/深度学习 人工智能 PyTorch
深度学习在图像识别中的应用与实践
【9月更文挑战第13天】本文将探讨深度学习技术在图像识别领域的应用,并通过实际案例展示其在解决复杂图像处理问题中的强大能力。我们将从基础概念出发,逐步深入到深度学习模型的构建、训练以及调优过程,旨在为读者提供一套完整的图像识别解决方案。通过本文,您将了解到如何利用深度学习技术提升图像识别的准确率和效率,以及如何将这些技术应用于实际项目中。
|
6天前
|
机器学习/深度学习 存储 自然语言处理
深度学习中的模型压缩技术:从理论到实践
本文深入探讨了深度学习领域中的模型压缩技术,包括权重剪枝、量化、知识蒸馏和轻量级模型设计。通过对比实验结果,展示了这些技术在保持模型精度的同时,显著降低计算资源和存储需求。
|
8天前
|
机器学习/深度学习 编解码 文件存储
深度学习中的模型压缩技术:从理论到实践
本文旨在探讨深度学习领域中的模型压缩技术,包括其背后的理论基础、常见方法以及在实际场景中的应用。我们将从基本的量化和剪枝技术开始,逐步深入到更高级的知识蒸馏和模型架构搜索。通过具体案例分析,本文将展示这些技术如何有效减少模型的大小与计算量,同时保持甚至提升模型的性能。最后,我们将讨论模型压缩技术未来的发展方向及其潜在影响。
|
8天前
|
机器学习/深度学习 自然语言处理 算法
深度学习中的模型压缩技术:从理论到实践
随着深度学习技术的迅速发展,复杂的神经网络模型在许多任务中取得了显著成果。然而,这些模型通常参数量大,计算复杂度高,难以部署到资源受限的设备上。为了解决这个问题,模型压缩技术应运而生。本文将探讨几种主流的模型压缩方法,包括权重剪枝、量化和知识蒸馏,介绍其基本原理、实现步骤以及在实际应用中的效果。通过具体案例分析,我们将展示如何有效地使用这些技术来减少模型的大小和计算需求,同时保持甚至提升模型的性能。最后,我们将讨论当前模型压缩技术面临的挑战和未来的发展方向。
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习的奇迹:从理论到实践
在本文中,我们将探索深度学习的奥秘,从其理论基础到实际应用。我们将讨论深度学习如何改变了我们处理数据和解决问题的方式,以及它如何影响我们的生活和工作。无论你是初学者还是专家,这篇文章都将为你提供新的视角和深入的理解。让我们一起踏上这段奇妙的旅程吧!
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习的奥秘:从理论到实践
【9月更文挑战第12天】本文旨在深入探讨深度学习的基本原理,并通过实际案例展示其在不同领域的应用。我们将从神经网络的基本概念出发,逐步深入到深度学习的核心思想,并结合代码示例,揭示深度学习如何改变我们的生活和工作方式。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和启示。
15 2
|
10天前
|
机器学习/深度学习 自然语言处理 语音技术
深度学习的魔法:从理论到实践
在这篇文章中,我们将一起探索深度学习的奥秘。从最初的好奇和迷茫,到勇敢尝试新的领域,再到不断学习和提升,我们将一同见证一个深度学习爱好者的成长历程。正如乔布斯所说,“人生中的每一个点都会在未来某个时刻连接起来”,让我们一起看看这些点是如何在深度学习的世界里连接起来的。
|
3天前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习中的图像识别技术:从理论到实践
【9月更文挑战第17天】在深度学习的浪潮中,图像识别技术以其惊人的准确率和广泛的应用前景,成为了科技领域的一颗耀眼之星。本文将通过浅显易懂的语言,带你走进图像识别的世界,探索其背后的原理,并通过实际代码示例,展示如何运用深度学习框架实现简单的图像分类任务。无论你是初学者还是有一定经验的开发者,都能从中获益。

相关产品

  • 开源大数据平台 E-MapReduce