Skip to content

Instantly share code, notes, and snippets.

@DavidGeorge528
Last active May 15, 2017 10:36
Show Gist options
  • Save DavidGeorge528/5f7121385b3075372109a129f1a1864f to your computer and use it in GitHub Desktop.
Save DavidGeorge528/5f7121385b3075372109a129f1a1864f to your computer and use it in GitHub Desktop.
num_epoch = 50
print_freq = 10
class Histories(Callback):
def on_train_begin(self, logs={}):
self.epoch = []
self.history = {}
self.history["batch"] = []
def on_train_end(self, logs={}):
return
def on_epoch_begin(self, epoch, logs={}):
self.epoch.append(epoch)
self.batch = []
self.history['batch'] = {}
self.history['batch']['acc'] = [0] * self.params['steps']
self.history['batch']['loss'] = [0] * self.params['steps']
def on_epoch_end(self, epoch, logs={}):
for k, v in logs.items():
self.history.setdefault(k, []).append(v)
def on_batch_begin(self, batch, logs={}):
self.batch.append(batch)
def on_batch_end(self, batch, logs={}):
self.history['batch']['acc'][batch] = logs['acc']
self.history['batch']['loss'][batch] = logs['loss']
if (((batch+1) % print_freq) == 0) or (batch == self.params['steps']-1):
num_batch = self.params['steps']
batch_loss = self.history['batch']['loss'][batch]
batch_acc = self.history['batch']['acc'][batch]
train_loss = mean(self.history['batch']['loss'][:batch+1])
train_acc = mean(self.history['batch']['acc'][:batch+1])
print('Ep %2d | Batch (%3d / %3d) | Trn [BLoss %.5f | BAcc %.5f | Loss %.5f | Acc %.5f]'
% (epoch+1, batch+1, num_batch, batch_loss, batch_acc, train_loss, train_acc), end='\r')
train_gen = genBatch(X_train, Y_train, batch_size, num_batches)
val_gen = genBatch(X_test, Y_test, batch_size_val, num_batches_val)
model.fit_generator(generator=train_gen,
steps_per_epoch=num_batches,
initial_epoch=epoch,
epochs=epoch+1,
validation_data=val_gen,
validation_steps=num_batches_val,
callbacks=[learning_rate_scheduler, h],
verbose=0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment