2017-02-21 8 views
2

Я пытаюсь определить свою собственную функцию потерь в keras, которая является ошибкой среднего квадрата среднего квадрата. RMSPE определяется как:
equation
Я определил свою функцию потерь как:
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.
Но после нескольких итераций это дает мне значение потерь как nan. Может кто-то указать, что я делаю неправильно. СпасибоПользовательская функция потери RMSPE в keras

+0

Какой бэкэнд вы используете? –

+0

Я использую tensorflow –

+0

Вы проверили, не содержат ли ваши данные 'Nan'? –

ответ

0

Когда ваш знаменатель равен 0, это будет Нань. Рассмотрим плюс небольшое число на вашем знаменателе, например 0,0000001.

+0

K.clip уже делает это. Вы можете проверить , что делает клип. –