Я использую Keras с бэкэндом Tensorflow.Я хотел бы создать новую пользовательскую функцию потерь, где я объединяю отдельные значения y_true и y_pred в бины (представьте гистограмму), а затем вычисляю chi2 между двумя гистограммами.
Я понимаю, что тензорный объект не повторяется, поэтому я не могу циклически перебирать отдельные элементы y_true и y_pred для заполнения гистограмм.
Обновление:
Я пыталсясоздать функцию потерь, как это:
def Chi2Loss(y_true, y_pred):
h_true = tf.histogram_fixed_width( y_true, value_range=(-1., 1.), nbins=20)
h_pred = tf.histogram_fixed_width( y_true, value_range=(-1., 1.), nbins=20)
return K.mean(K.square(h_true - h_pred))
Но я получаю сообщение об ошибке:
TypeError: Вход 'y' из 'Mul' Op имеет тип float32, который не соответствует типуint32 аргумента 'x'.