前面的课程介绍了在 Windows 和 Linux 系统下,Deeplearning4j 开发环境的搭建。在此基础上,我们将进一步介绍 Deeplearning4j 开发的基本流程。本节课核心内容包括:
- 单 CPU 环境
- 多 CPU 环境
- 分布式 Spark 环境
对于机器学习应用来说,数据预处理、模型的训练和验证、模型的部署上线是几个标准的流程,Deeplearning4j 框架的开发流程同样遵循这几个步骤。由于 Deeplearning4j 本身支持在 CPU/GPU 环境下的单机/并行/分布式建模,并且在不同环境下建模的细节略有不同,因此本次课程将着重介绍在单 CPU、多 CPU 及 Spark 集群上建模的步骤。至于在 GPU 环境的开发细节,将在后续课程中单独进行介绍。
2.1 单 CPU 环境
单 CPU 环境常常用于原型验证,尤其对于 Deeplearning4j 来讲,在单 CPU 环境下验证通过后的逻辑可以很方便地移植到其他环境中。下面我们分四个环节介绍在单 CPU 环境下的建模步骤。
2.1.1 构建训练数据
数据集的构建是建模的基础。Deeplearning4j 用内置类:DataSet 对训练数据进行封装(PS:DataSet 对象不仅可以封装单条训练数据,也可以封装一个 Mini-batch 的训练数据)。每一次迭代其实是用一个 DataSet 去更新神经网络中的参数。因此在 D