Keras의 사용자 정의 손실 함수 구현
Keras에서는 특정 교육 요구 사항을 해결하기 위해 사용자 정의 손실 함수를 구현할 수 있습니다. 그러한 함수 중 하나는 정답과 예측 레이블 간의 중첩을 측정하는 주사위 오류 계수입니다.
Keras에서 사용자 정의 손실 함수를 만들려면 다음 단계를 따르세요.
1. 계수 함수 구현
주사위 오류 계수는 다음과 같이 작성할 수 있습니다.
dice coefficient = (2 * intersection) / (sum(ground_truth) sum(predictions))
Keras 백엔드 함수를 사용하면 계수 함수를 구현할 수 있습니다.
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)
2. 함수를 손실 함수로 래핑
Keras 손실 함수는 (y_true, y_pred)만 입력으로 받아들입니다. 따라서 손실을 반환하는 함수로 계수 함수를 래핑합니다.
def dice_loss(smooth, thresh):
def dice(y_true, y_pred):
return -dice_coef(y_true, y_pred, smooth, thresh)
return dice
3. 모델 컴파일
마지막으로 사용자 정의 손실 함수를 사용하여 모델을 컴파일합니다.
# 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)
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3