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 環境:
- 下載下傳 pre-build 版本,可以從 github,analytics 首頁下載下傳到 pre-build 版本
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運作詳情頁面。
同時檢視日志,能夠看到每個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 模型來進行。
- 導入資料
- 定義模型和優化器
- 進行訓練
- 檢視訓練結果