2017-10-20 65 views
1

我正在寫一個keras自定義丟失函數,我想在這個函數中傳遞以下內容: y_true,y_pred(無論如何都會自動傳遞這兩個參數),權重模型內部的一層,以及一個常量。Keras自定義丟失函數來傳遞除y_true和y_pred以外的參數

類似下面:

def Custom_loss(y_true, y_pred, layer_weights, val = 0.01): 
    loss = mse(y_true, y_pred) 
    loss += K.sum(val, K.abs(K.sum(K.square(layer_weights), axis=1))) 
    return loss 

但上面的實施給我的錯誤。 我怎樣才能在keras中實現這一點?

回答

3
def customLoss(layer_weights, val = 0.01): 

    def lossFunction(y_true,y_pred):  
     loss = mse(y_true, y_pred) 
     loss += K.sum(val, K.abs(K.sum(K.square(layer_weights), axis=1))) 
     return loss 

    return lossFunction 

model.compile(loss=customLoss(weights,0.03), optimizer =..., metrics = ...) 
相關問題