本节课程为大家介绍 Deeplearning4j 在 Apache Spark 上构建分布式深度学习模型的方式与底层机制。本节课的核心内容包括:
- Apache Spark 简介
- 深度学习的并行与分布式建模
Deeplearning4j 是原生支持在 Spark 上建模的开源库之一,同样原生支持的还有 Intel BigDL、SparkNet、H2O 等。像 Caffe 和 TensorFlow 则可以借助第三方的项目,如 CaffeOnSpark 和 TensorFlowOnSpark 来完成基于 Spark 的分布式建模。
从具体开发的角度上讲,基于 Deeplearning4j 进行分布式建模和运行一个普通的 Spark 应用是相似的,因此熟练 Spark 应用开发是必须的基础,在下面的课程中我们也会抽出一些篇幅来做介绍。
在本次课程的第二个部分,我们将为大家介绍参数服务器(Parameter Server)和异步梯度共享(Gradient Sharing)的原理,这也是 Deeplearning4j 构建分布式神经网络的底层机制。
在下一节课程中,我们将结合之前介绍过的 Fashion-MNIST 数据集的分类应用来介绍一个完整的分布式建模案例。从读取数据、训练、评估和部署等环节介绍完整的流程。在下半部分课程中我们还会介绍下内存调优的一些机制。由于 ND4J 的底层其实是通过 JavaCPP 的方式调用了诸如 OpenBLAS/MKL 的张量运算库,因此