Я пытаюсь определить свою собственную функцию потерь в keras, которая является ошибкой среднего квадрата среднего квадрата. RMSPE определяется как:
Я определил свою функцию потерь как: 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
2
A
ответ
0
Когда ваш знаменатель равен 0, это будет Нань. Рассмотрим плюс небольшое число на вашем знаменателе, например 0,0000001.
+0
K.clip уже делает это. Вы можете проверить
Какой бэкэнд вы используете? –
Я использую tensorflow –
Вы проверили, не содержат ли ваши данные 'Nan'? –