在阿里雲EMR上使用Intel 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運行詳情頁面。
1
同時查看日誌,能夠看到每個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 模型來進行推薦,相關內容可參考github
首先導入數據
2
然後定義模型和優化器
3
進行訓練
4
查看訓練結果
5
6

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章