Neural Networks are typically good models that give a reasonable performance on structured datasets, but they might not necessarily be better than others. However, when it comes to dealing with unstructured data, most often they are the best.
In this chapter, we will look into a Java library for designing Deep Neural Networks, called DeepLearning4j. But before we do this, we first will look into its backend--ND4J, which does all the number crunching and heavy lifting.
DeepLearning4j relies on ND4J for preforming linear algebra operations such as matrix multiplication. Previously, we covered quite a few such libraries, for example, Apache Commons Math or Matrix Toolkit Java. Why do we need yet another linear algebra library?
There are two reasons for this. First, these libraries usually deal only with vectors and matrices, but for deep learning we need tensors. A tensor is a generalization of vectors and matrices to multiple...