2017-02-21 3 views
2

Ich versuche, meine eigene Verlustfunktion in Keras zu definieren, die Root Mean Squared Percentage Error ist. RMSPE ist definiert als:
equation
Ich habe meine Verlustfunktion definiert als:
from keras import backend as K def rmspe(y_true, y_pred): sum = K.sqrt(K.mean(K.square((y_true - y_pred)/ K.clip(K.abs(y_true),K.epsilon(),None)), axis=-1)) return sum*100.
Aber nach ein paar Iterationen gibt es mir Verlustwert als Nan. Kann jemand darauf hinweisen, was ich falsch mache? DankeBenutzerdefinierte RMSPE-Verlust-Funktion in Keras

+0

Welches Backend verwenden Sie? –

+0

Ich verwende Tensorflow –

+0

Haben Sie überprüft, ob Ihre Daten nicht 'Nan' enthalten? –

Antwort

0

Wenn dein Nenner 0 ist, wird das Nan sein. Berücksichtigen Sie zusätzlich eine kleine Zahl auf Ihrem Nenner, z. B. 0,0000001.

+0

K.clip macht das schon. Sie können überprüfen, welcher Clip tut. –

Verwandte Themen