2017-04-24 6 views
0

テンソルフローをバックエンドとして使用しているときにkerダイブレジェンスをケラスで計算するにはどうすればよいですか?次のように私は、L1損失を計算する:それはhereを見ることができるようにKerasがすでにKL-発散は、実施しているケラスのKL分岐(テンソルフローバックエンド)

def l1_loss(y_true, y_pred): 
    return K.sum(K.abs(y_pred - y_true), axis=-1) 

答えて

2

、コードだけである:

def kullback_leibler_divergence(y_true, y_pred): 
    y_true = K.clip(y_true, K.epsilon(), 1) 
    y_pred = K.clip(y_pred, K.epsilon(), 1) 
    return K.sum(y_true * K.log(y_true/y_pred), axis=-1) 

はそうちょうどKLD、KLDまたはkullback_leibler_divergenceを使用します損失として。