'Called when an epoch is about to end
Arguments:
callback_data (HDF5 dataset): shared data between callbacks
model (Model): model object
epoch (int): index of epoch that is ending'

def on_epoch_end(self, callback_data, model, epoch):

    _eil = self._get_cached_epoch_loss(callback_data, model, epoch, 'loss')
    log_str = ('Epoch    %d    complete.        Train    Cost    %f.' % (epoch, model.total_cost))
    log_str += (('        Eval    Cost    %f' % _eil['cost']) if _eil else '')
    logger.info(log_str)
