예제 #1
0
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())
예제 #2
0
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
예제 #3
0
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())