loading

基于Spark和Bigdl的深度学习技术案例分析

本文主要分享了英特尔和京东基于spark和bigdl深度学习技术构建大规模图像特征提取框架的实践经验。背景特征提取广泛应用于类似图像检索、重复数据删除等领域。 在使用bigdl框架 (稍后将提到) 之前,我们尝试在多机器,多GPU卡和GPU集群上分别开发和部署特征提取应用程序。 然而,上述框架都有明显的缺点:

基于Spark和Bigdl的深度学习技术案例分析 1

在GPU集群中,基于GPU卡的资源分配策略非常复杂,资源分配容易出现问题,如剩余视频内存不足,导致oom和应用崩溃。在单机情况下,与集群模式相比,开发人员需要手动做数据碎片,负载和容错,GPU模式的应用,以Caffe为例,有很多依赖,包括CUDA,这增加了部署和维护的难度。 例如,当不同的操作系统版本和GCC版本出现问题时,需要对其进行重新编译和打包。

以上问题使得基于GPU的前向程序在架构上面临诸多技术应用挑战。

让我们看看场景本身。 由于许多图片的背景复杂,被摄对象的比例通常较小,为了减少背景对特征提取精度的干扰,需要将被摄对象从图片中分离出来。 自然,图像特征提取的框架分为两个步骤。 首先通过目标检测算法对目标进行检测,然后通过特征提取算法提取目标特征。 在这里,我们使用SSD [1] (单发多盒检测器) 进行目标检测,使用deepbit [2] 网络进行特征提取。

京东在主流的分布式开源数据库中拥有大量 (超过数亿) 的产品图片。 因此,如何在大规模分布式环境中高效地检索和处理数据是图像特征提取流水线的关键问题。 现有的基于GPU的解决方案在解决上述场景的需求方面还面临着其他的挑战: 数据下载时间较长,基于GPU的方案不能很好地优化,对于分布式开源数据库中的图片数据,GPU方案早期的数据处理过程非常复杂,并且没有成熟的软件框架来进行资源管理、分布式数据处理和容错管理。

基于Spark和Bigdl的深度学习技术案例分析 2

由于GPU软件和硬件框架的局限性,扩展GPU方案来处理大规模图像是非常具有挑战性的。Bigdl集成方案在生产环境中,使用现有的软硬件设施将大大提高生产效率 (如降低R & D新产品的时间) 并降低成本。 在这种情况下,数据存储在大数据集群中的主流分布式开源数据库上。 如果深度学习应用程序可以使用现有的大数据集群 (例如Hadoop或spark集群) 进行计算,则可以轻松解决上述挑战。

英特尔的开源bigdl项目 [3] 是spark上的分布式深度学习框架,提供全面的深度学习算法支持。 Bigdl可以通过spark平台的分布式可扩展性轻松扩展到数百或数千个节点。 同时,bigdl采用Intel MKL数学计算库和并行计算技术,在Intel Xeon服务器上实现高性能 (计算能力可与主流GPU的性能相媲美),在我们的场景中,bigdl是定制的,以支持各种型号 (检测和分类); 该模型从仅适用于特定环境移植到支持通用模型 (cafe、torch、tensorflow) 的bigdl大数据环境; 整个流水线流程得到了优化和加速,通过bigdl进行spark环境特征提取的流水线如图1所示:

使用spark从分布式开源数据库中读取数亿张原始图片,并构建RDDUse spark对图片进行预处理,包括调整大小,减去平均值,将数据合成成批处理,使用bigdl加载SSD模型,通过火花对图片进行大规模、分布式的目标检测,得到一系列检测坐标和相应的分数

将得分最高的检测结果保留为被摄目标,根据检测坐标对原始图像进行切割得到目标图像,对目标图片的RDD进行预处理,包括调整大小,形成batchBigdl,用于加载deepbit模型,并利用spark提取检测到的目标图像的分布特征,得到相应的特征

检测结果 (提取的目标特征RDD) 存储在hdf上。整个数据分析流水线,包括数据读取,数据分区,预处理,预测和结果存储,可以通过bigdl轻松地在spark中实现。 在现有的大数据集群 (Hadoop / spark) 上,用户可以使用bigdl运行深度学习应用程序,而无需修改任何集群配置。 而且,利用spark平台的高可扩展性,bigdl可以很容易地扩展到大量的节点和任务,因此大大加快了数据分析过程。除了分布式深度学习的支持外,bigdl还提供了许多易于使用的工具,如图像预处理库、模型加载工具 (包括第三方深度学习框架的加载模型),更方便用户构建整个流水线。

图像预处理 (Image preprocessingBigdl) 提供了基于OpenCV [5] 的图像预处理库 [4],支持各种常见的图像转换和图像增强功能。 用户可以轻松地使用这些基本功能来构建图像预处理管道。 此外,用户还可以调用库提供的opencv函数来操作自定义图像转换,该示例的预处理管道通过一系列转换将原始RDD转换为批量RDD。 其中bytetomat将字节图片转换为OpenCV的mat存储格式,调整图片大小为300x300,mattofloats将mat中的像素保存为float数组格式,并减去相应通道的平均值。 最后,roiimagetobatch将数据形成一个批处理,作为模型的输入进行预测或训练。

加载模型用户可以轻松地使用bigdl加载预先训练的模型,并直接在Spark程序中使用它。 给定bigdl模型文件,您可以调用module.load来获取模型。此外,bigdl还支持第三方深度学习框架模型的导入,例如Caffe,torch和tensorflow。

用户可以方便地加载训练好的模型进行数据预测、特征提取、模型微调等。 以Caffe为例,Caffe的模型由模型原型定义文件和模型参数文件两个文件组成。 如下所示,用户可以轻松地将预先训练好的Caffe模型加载到spark和bigdl程序中。performanceWe对基于Caffe的GPU集群解决方案和基于bigdl的Xeon集群解决方案的性能进行基准测试。 测试在JD的内部集群环境中运行。

测试标准端到端图片处理和分析流水线,包括: 从分布式开源数据库中读取图片 (从图片源中下载图片到内存)

输入目标检测模型和特征提取模型进行特征提取将结果 (图片路径和特征) 保存到文件系统中注意: 下载因子已成为影响整体端到端吞吐量的重要因素。 在这种情况下,这部分处理时间约占总处理时间的一半 (下载检测特征)。 GPU服务器不能使用GPU来加速下载的处理。

测试环境gpu: NVIDIA Tesla K40,20卡同时执行CPU: 英特尔 (R) 至强 (R) CPU e5-2650 V4 @ 2.20GHz,总共1200个逻辑内核 (每个服务器有24个物理内核,启用超线程,并配置为50个逻辑内核的yarn)

测试结果图2显示,Caffe的20k40并发处理图片的吞吐量约为540图片/s,而bigdl在具有1200逻辑核心的yarn (Xeon) 集群上的吞吐量约为2070图片/s。 bigdl在Xeon集群上的吞吐量约为GPU集群的3.83倍,大大缩短了大规模图像的处理时间。测试结果表明,bigdl在大规模图像特征提取应用中提供了更好的支持。 Bigdl的高可扩展性,高性能和易用性帮助JD更轻松地应对图片规模的大规模和爆炸性增长。 基于这些测试结果,JD正在将基于GPU集群的Caffe图像特征提取的实现升级为基于Xeon集群的bigdl方案,并将其部署到spark集群生产环境中。

图2比较了图片特征提取中K40和Xeon的吞吐量pipelineBigdl的高可扩展性,高性能和易用性帮助JD更轻松地使用深度学习技术来处理海量图像。 JD将继续将bigdl应用于更广泛的深度学习应用程序,例如分布式模型培训。报价

[1]. 刘,魏,等。 固态硬盘: 单发多盒探测器。 欧洲计算机视觉会议。 施普林格,Cham,2016.[2]. 林、凯文等人。 使用无监督深度神经网络学习紧凑的二进制描述符。 IEEE计算机视觉和模式识别会议论文集,2016.[3]. https://github.com/intel-analyTIcs/BigDL

[4]. https://github.com/英特尔-分析/分析-动物园/树/主/变换/视觉 [5]。

请与我们联系
推荐的文章
案例
停车售票机介绍很难清楚地描述相同的内容。 很多人使用相同的格式,这样更容易理解
在停车票售票机中寻找什么大多数时候,您会发现有很多不同种类的停车票。您会感到疲倦
自动泊车售票机的介绍 自动泊车售票机的发明是可以用汽车支付停车费的发明
停车票分配器的工作原理您可以通过购买停车票在线购买停车票很容易,但您也可以使用借记卡、信用卡、支票支付
停车场自动售票机介绍人们总是会问停车场机的用途是什么?停车场机器的用途是什么?人们总是
停车场售票机的引入停车场售票机对于机场来说非常重要。 为了保证公众和客户的安全,有必要
什么是停车票机系统?停车票机系统?什么是停车票机系统?停车票机系统?停车票机系统
为什么选择自动停车票机?只需进行一些简单的更改,您就可以轻松地为停车票的世界增添自己的独特魅力。 自动泊车票 h
停车票分配器的工作原理停车票分配器的工作原理 noche esta edicin flickerrolls politika sin sadismo 香烟 shuhua nga qiaomiao miaoxian o harakk
引入停车票分配器使用互联网时要有良好的体验。 对于那些不知道如何使用互联网的人,我
没有数据
深圳市虎王科技有限公司是领先的车辆智能停车系统、车牌识别系统、行人门禁闸机、人脸识别终端等门禁解决方案提供商。 LPR停车解决方案 .
没有数据
CONTACT US

深圳市泰格旺科技有限公司

电话:86 13717037584

电子邮件: info@sztigerwong.com

地址:硅谷动力数字产业园A2栋一楼 龙华区观澜街道大富路22号

中国广东省深圳市  

                    

版权©2021深圳市TigerWong科技有限公司  | 网站地图
Contact us
skype
whatsapp
messenger
contact customer service
Contact us
skype
whatsapp
messenger
取消
Customer service
detect