In the previous two chapters, we have learned how to programmatically configure and build convolutional neural networks (CNNs) and recurrent neural networks (RNNs) using the DeepLearning4j (DL4J) API in Scala. There, implementing the training of these networks was mentioned, but very little explanation has been provided. This chapter finally goes into details of how to implement the training strategies for both kinds of network. The chapter also explains why Spark is important in the training process and what the fundamental role of DL4J is from a performance perspective.
The second and third sections focus on specific training strategies for CNNs and RNNs respectively. The fourth section of this chapter also provides suggestions, tips, and tricks for a proper Spark environment configuration. The final section describes how to use the DL4J Arbiter...