"""Perform the training of the Neural Network.
:param model: An instance of EpyNN network.
:type model: :class:`epynn.network.models.EpyNN`
# Iterate over training epochs
for model.e in range(model.e, model.epochs):
# Shuffle dtrain and prepare new batches
# Iterate over training batches
for batch in model.embedding.batch_dtrain:
# Pass through every layer.forward() methods
A = model.forward(batch.X)
# Compute derivative of loss
dA = model.training_loss(batch.Y, A, deriv=True)
# Pass through every layer.backward() methods
# Accuracy and cost for batch
# Selected metrics and costs for dsets
# Tabular report for dsets