Analytics Zoo是由Intel开源,基于Apache Spark和Inte BigDL的大数据分析和AI平台,方便您开发基于大数据、端到端的深度学习应用。本文介绍了如何在阿里云E-MapReduce使用Analytics Zoo来进行深度学习。
系统要求
- JDK 8
- Spark 集群(推荐使用EMR支持的 Spark 2.x)
- Python-2.7(python 3.5,3.6 也支持)、pip
安装Analytics Zoo
- 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
- 下载pre-build版本
- Python安装
Analytics Zoo支持pip安装和非pip安装,pip安装会安装pyspark、bigdl等,由于EMR集群已经安装了pyspark,通过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
- 查看Spark运行详情页面,具体步骤可参见通过SSH隧道方式访问开源组件Web UI或访问链接与端口。同时查看日志,能够看到每个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。
- 导入数据。
- 定义模型和优化器。
- 进行训练。
- 查看训练结果。
- 导入数据。
- 安装Jupyter。
在文档使用中是否遇到以下问题
更多建议
匿名提交