In this chapter, some concepts to think about when moving DL4J to production have been discussed. In particular, we understood how heap and off-heap memory management should be set up, looked at extra considerations on GPUs setup, saw how to prepare job JARs to be submitted to Spark for training, and also saw how it is possible to import and integrate Python models into an existing DL4J JVM infrastructure. Finally, a comparison between DL4J and two other DL frameworks for Scala (BigDL and DeepLearning.scala) was presented, and the reasons why DL4J could be a better choice from a production perspective were detailed.
In the next chapter, the core concepts of Natural Language Processing (NLP) will be explained, and a complete Scala implementation of NLP using Apache Spark and its MLLib (Machine Learning Library) will be detailed. We will go through the potential limitations...