天天看點

Apache Spark + Intel Analytics Zoo 進行深度學習簡介系統要求安裝Analytics Zoo使用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運作詳情頁面。
    Apache Spark + Intel Analytics Zoo 進行深度學習簡介系統要求安裝Analytics Zoo使用Analytics Zoo

同時檢視日志,能夠看到每個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. 導入資料
    Apache Spark + Intel Analytics Zoo 進行深度學習簡介系統要求安裝Analytics Zoo使用Analytics Zoo
  2. 定義模型和優化器
    Apache Spark + Intel Analytics Zoo 進行深度學習簡介系統要求安裝Analytics Zoo使用Analytics Zoo
  3. 進行訓練
    Apache Spark + Intel Analytics Zoo 進行深度學習簡介系統要求安裝Analytics Zoo使用Analytics Zoo
  4. 檢視訓練結果
    Apache Spark + Intel Analytics Zoo 進行深度學習簡介系統要求安裝Analytics Zoo使用Analytics Zoo
Apache Spark + Intel Analytics Zoo 進行深度學習簡介系統要求安裝Analytics Zoo使用Analytics Zoo