'Called when training is about to begin
Arguments:
callback_data (HDF5 dataset): shared data between callbacks
model (Model): model object
epochs (int): Total epochs'

def on_train_begin(self, callback_data, model, epochs):

    if ('metrics' not in callback_data):
        callback_data.create_group('metrics')
    for met in self.metric.metric_names:
        group_name = ('metrics/%s' % met)
        callback_data.create_dataset(group_name, ((epochs // self.epoch_freq),))
        callback_data[group_name].attrs['time_markers'] = 'epoch_freq'
        callback_data[group_name].attrs['epoch_freq'] = self.epoch_freq
