As stated in the previous section, a DNN is an ANN with multiple hidden layers between the input and output layers. Typically, they are feedforward networks in which data flows from the input layer to the output layer without looping back, but there are different flavors of DNNs – among them, those with the most practical applications are Convolutional Neural Networks (CNNs) and Recurrent Neural Networks (RNNs).