keras-perceptual_loss
- L1, L2 Loss
def l1_loss(y_true,y_pred): return K.mean(K.abs(y_true-y_pred)) def l2_loss(y_true,y_pred): return K.mean(K.square(y_true-y_pred))
- Perceptual Loss
def perceptual_loss(y_true, y_pred): # y_true and y_pred's pixels are scaled between 0 to 255 y_true = preprocess_input(y_true) y_pred = preprocess_input(y_pred) vgg = VGG19(include_top=False, weights='imagenet', input_shape=(256,256,3)) loss_model = Model(inputs=vgg.input, outputs=vgg.get_layer('block3_conv3').output) loss_model.trainable = False return K.mean(K.square(loss_model(y_true)-loss_model(y_pred)))