model.summary() filepath = os.path.join(data_output, "checkpoints", "weights-improvement-{epoch:02d}-{PSNR:.2f}.hdf5") checkpoint = ModelCheckpoint(filepath, monitor=PSNR, verbose=1, mode='max') callbacks_list = [checkpoint] model.fit(X, y, epochs=EPOCHS, validation_split=0.20, batch_size=BATCH_SIZE, callbacks=callbacks_list, shuffle="batch") print("Done training!!!") print("Saving the final model ...") model.save(os.path.join(data_output,"fsrcnn_Sat-6_Epoch{}_VIS2NIR.h5".format(EPOCHS))) # creates a HDF5 file y_pred = model.predict(x_true) n = y_true.shape[0] mses = 0 rmses = 0 psnrs = 0 ssims = 0 for i in range(0,n): print("Testing {}/{}...".format(i,n)) y = y_true[i,:,:,0] y_prime = y_pred[i,:,:,0] mses = mses + mse(y, y_prime) rmses = rmses + rmse(y, y_prime) psnrs = psnrs + psnr(y, y_prime, data_range=y_prime.max() - y_prime.min()) ssims = ssims + ssim(y, y_prime, data_range=y_prime.max() - y_prime.min())
model = PReLU()(model) model = Conv2DTranspose(1, (9, 9), strides=(4, 4), padding='same')(model) output_img = model model = Model(input_img, output_img) # model.load_weights('./checkpoints/weights-improvement-20-26.93.hdf5') model.compile(optimizer='adam', lr=0.0001, loss='mse', metrics=[PSNR, "accuracy"]) model.summary() filepath = "./checkpoints/weights-improvement-{epoch:02d}-{PSNR:.2f}.hdf5" checkpoint = ModelCheckpoint(filepath, monitor=PSNR, verbose=1, mode='max') callbacks_list = [checkpoint] model.fit_generator(image_gen(train_list, scale=INPUT_SCALE), steps_per_epoch=len(train_list) // BATCH_SIZE, \ validation_data=image_gen(test_list, scale=INPUT_SCALE), validation_steps=len(train_list) // BATCH_SIZE, \ epochs=EPOCHS, workers=8, callbacks=callbacks_list) print("Done training!!!") print("Saving the final model ...") model.save('fsrcnn_model.h5') # creates a HDF5 file del model # deletes the existing model
checkpoint = ModelCheckpoint(filepath, monitor=PSNR, verbose=1, mode='max') callbacks_list = [checkpoint] model.fit(X, y, epochs=EPOCHS, validation_split=0.25, batch_size=BATCH_SIZE, callbacks=callbacks_list, shuffle="batch") print("Done training!!!") print("Saving the final model ...") model.save( os.path.join(data_output, "fsrcnn_L7_Epoch{}_{}x.h5".format( EPOCHS, SCALE_FACTOR))) # creates a HDF5 file y_pred = model.predict(x_true) n = y_true.shape[0] mses = 0 rmses = 0 psnrs = 0 ssims = 0 for i in range(0, n): print("Testing {}/{}...".format(i, n)) y = y_true[i, :, :, 0] y_prime = y_pred[i, :, :, 0] mses = mses + mse(y, y_prime) rmses = rmses + rmse(y, y_prime) psnrs = psnrs + psnr(y, y_prime, data_range=y_prime.max() - y_prime.min())