Fonctions de perte personnalisées dans Keras : un guide détaillé
Les fonctions de perte personnalisées vous permettent d'adapter le processus de formation de votre modèle à un problème ou une métrique spécifique . Dans Keras, la mise en œuvre de fonctions de perte personnalisées paramétrées nécessite de suivre une procédure spécifique.
Création de la méthode coefficient/métrique
Tout d'abord, définissez une méthode de calcul du coefficient ou de la métrique que vous que vous souhaitez utiliser comme fonction de perte. Par exemple, pour le coefficient Dice, vous pouvez écrire le code suivant :
import keras.backend as K def dice_coef(y_true, y_pred, smooth, thresh): y_pred = y_pred > thresh y_true_f = K.flatten(y_true) y_pred_f = K.flatten(y_pred) intersection = K.sum(y_true_f * y_pred_f) return (2. * intersection + smooth) / (K.sum(y_true_f) + K.sum(y_pred_f) + smooth)
Fonction Wrapper pour Keras
Les fonctions de perte Keras n'acceptent que (y_true, y_pred) comme paramètres. Pour correspondre à ce format, créez une fonction wrapper qui renvoie la fonction de perte :
def dice_loss(smooth, thresh): def dice(y_true, y_pred) return -dice_coef(y_true, y_pred, smooth, thresh) return dice
Utilisation de la fonction de perte personnalisée
Vous pouvez maintenant utiliser votre fonction de perte personnalisée dans Keras en le compilant avec l'argument de perte :
# build model model = my_model() # get the loss function model_dice = dice_loss(smooth=1e-5, thresh=0.5) # compile model model.compile(loss=model_dice)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!