用IDEA开发BigDL——Scala

  • 综述
  • 开发
    • 1.下载BigDL
    • 2.导入项目到IDEA
    • 3.配置IDEA

综述

BigDL 是一种面向 Apache Spark* 的分布式深度学习库。用户可以通过 BigDL 将深度学习应用编写为标准的 Spark程序,可以直接在现有的 Spark 或 Hadoop* 集群上运行。



一些文章将BigDL描述为“Non GPU on Spark”。BigDL依靠Spark并行计算框架,实现快速的深度学习计算。Intel2016年末开源BigDL深度学习框架,到目前为止(2017.04)BigDL支持scala、java和python语言,框架里面包含了许多网络model,并且相关的内容不断更新,功能不断完善中。


官方介绍:https://software.intel.com/zh-cn/articles/bigdl-distributed-deep-learning-on-apache-spark
BigDL github:https://github.com/intel-analytics/BigDL
wiki:https://github.com/intel-analytics/BigDL/wiki

开发

官方的wiki里面给出了在linux/macos下面Build Page的方法,并且在Getting-Started中给出运行实例代码的方法,这些方式适合运行实例,对于开发者来说并不方便,本文给出了用IDEA开发BigDL的方法。

环境

  • macos
  • IntelliJ IDEA
  • jdk-1.8
  • scala-2.11
  • maven-3.3.9
  • spark-2.1
  • Git

本文默认你的电脑已经安装好了jdk、scala、maven和spark等环境,不在此赘述。

1. 下载BigDL

Intel将BigDL源码放在github上面,首先将源码下载到本地电脑。你可以直接在BigDL主页右侧的Clone or download选择Download ZIP然后解压到本地目标目录,或者在本地目标目录使用git命令

git clone https://github.com/intel-analytics/BigDL.git

2.导入项目到IDEA



2.1 打开IDEA,选择Import Project


IEDA向导页面



2.2选择上一步的BigDL目录

然后选择上一步的BigDL目录



2.3选择Maven

选择Maven



2.4直接点击下一步


点击Next



2.5选择版本,图中的mac是本文环境用macos开发选择的,all-in-one是根据官方文档给出选择的


选择Maven依赖



2.6然后点击下一步即可,等待IDEA将pom.xml中的依赖等下载好;

3.配置IDEA

下面配置环境变量。选择Run->Edit Configuration,如果没有红框里面的就点+新建一个;

Edit Configuration

在这里面需要更改Main class/VM options/Program arguments/Working directory/Environment variables,其中,
Main class:需要运行的文件
VM options:

-Dspark.master=local[1]
-Dspark.executor.cores=1
-Dspark.total.executor.cores=1
-Dspark.executor.memory=1g
-Dspark.driver.memory=1g
-Xmx1024m
-Xms1024m

Program arguments:

--folder ./mnist
--batchSize 4
--maxEpoch 8
--checkpoint ./model
Program arguments 参数解释
  -f  | --folder 
        where you put the MNIST data
  --model 
        model snapshot location
  --state 
        state snapshot location
  --checkpoint 
        where to cache the model and state
  -b  | --batchSize (batchSize属性有些问题)
        batch size
  -e  | --maxEpoch 
        max epoch

Working directory:选择工程根目录
Environment variables:

DL_ENGINE_TYPE=mklblas
MP_NUM_THREADS=1
KMP_BLOCKTIME=0
OMP_WAIT_POLICY=passive
MKL_DISABLE_FAST_MM=1
OMP_NUM_THREADS=1

在mnist网站上下载手写体数据库放到./mnist目录下面(具体文件目录结构参考2.2图),打开./spark/dl/main/scala/com.intel.analytics.bigdl/models/autoencoder/Train.scala点击运行即可。











北京师范大学
图形图像与模式识别实验室
[email protected]

你可能感兴趣的:(用IDEA开发BigDL——Scala)