logger.plot_model(model, 'Classifier') log('Create Networks Successfully') #%% ################################################################### ######################## Start training ########################### ################################################################### for epoch in range(epochs + 1): log("Epoch {}".format(epoch + 1)) # train loss_sum, acc_sum = 0, 0 for i in range(batch_steps): x_batch, y_batch, showlabels = dataset.train_next_batch() loss, acc = model.train_on_batch(x_batch, y_batch) loss_sum = loss_sum + loss acc_sum = acc_sum + acc utils.progressbar(i, batch_steps) logger.write_tensorboard(['train_acc', 'train_loss'], [acc_sum / batch_steps, loss_sum / batch_steps], epoch) print('Training Acc :\t{:.4f}'.format(acc_sum / batch_steps)) # valid if (epoch % eval_freq == 0): loss, acc = evaluator.EvaluateModel(model, epoch) print('Validate Loss:\t{:.4f}'.format(loss)) print('Validate Acc :\t{:.4f}'.format(acc)) logger.save_weights(model, "Round{}_Weights".format(epoch))
SRCNN = Model(inputs=inputs, outputs=x, name='SRCNN') SRCNN.compile(Adam(lr=0.0002), loss='mse') #%% log model logger.callback.set_model(SRCNN) # record in tensorboard logger.save_model(SRCNN, "SRCNN_model") logger.load_pretrained_weights(SRCNN, 'SRCNN_Weights.h5') logger.plot_model(SRCNN, 'SRCNN') log('Create Networks Successfully') ################################################################### ######################## Start training ########################### ################################################################### batch_steps = n_images // FLAGS.batch_size for epoch in range(FLAGS.epochs): log("Epoch {}".format(epoch + 1)) testindex = np.random.choice(len(dataset.test_names), 1) testname = os.path.join(dataset.test_dir, dataset.test_names[testindex[0]]) img_ycbcr = np.squeeze(dataset.imagefiles2arrs([testname])) utils.predict(img_ycbcr / 255.0, SRCNN, epoch) loss_sum = 0 for i in range(batch_steps): x_batch, y_batch = dataset.train_next_batch() loss = SRCNN.train_on_batch(x_batch, y_batch) loss_sum += loss utils.progressbar(i, batch_steps) logger.write_tensorboard(['train_loss'], [loss_sum / i], epoch) logger.save_weights(SRCNN, "SRCNN_Weights")