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