Я пытаюсь реализовать функцию Huber Loss в Python
def huber_loss(pred,true,name=None):
huber_mse = 0.5*(true-pred)**2
huber_mae = 1.5 * (np.abs(true - pred) - 0.5 * 1.5)
return np.where(np.abs(true - pred) <= 1.5, huber_mse, huber_mae)
, которая выдает мне ошибку ValueError: setting an array element with a sequence.
Я думаю, что мне нужно использовать tenorflow, так как pred и true оба являются массивами для определения моя функция, это правильно? Если да, то как бы это изменить?
Я проверил
def huber_loss(pred,true,name=None):
huber_mse = 0.5*(true-pred)**2
huber_mae = 1.5 * (tf.math.abs(true - pred) - 0.5 * 1.5)
return tf.where(tf.math.abs(true - pred) <= 1.5, huber_mse, huber_mae)
Мне нужно применить его к add_moving_summary(huber_loss(...))
, который принимает только скалярный тензор, поэтому вышеприведенное не работает. ..