2017-10-20 34 views
1

私はこの関数に次のように渡したいケラスのカスタム損失関数を書いています: y_true、y_pred(これら2つは自動的に渡されます)モデル内のレイヤーの定数、および定数。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 

しかし、上記の実装は私にエラーを与えます。 ケラスでどうすればいいですか?

答えて

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 = ...) 
関連する問題