Я пытаюсь реализовать слой Lambda, который будет создавать пользовательскую функцию потерь. На уровне мне нужно иметь возможность сравнивать каждый элемент в пакете с любым другим элементом в пакете, чтобы рассчитать стоимость. В идеале мне нужен код, который выглядит примерно так:
for el_1 in zip(y_pred, y_true):
for el_2 in zip(y_pred, y_true):
if el_1[1] == el_2[1]:
# Perform a calculation
else:
# Perform a different calculation
Когда я это делаю, я получаю:
TypeError: TensorType does not support iteration.
Я использую Keras версии 2.0.2 с бэкэндом Theano версии 0.9.0. Я понимаю, что для этого мне нужно использовать тензорные функции Keras, но я не могу найти какие-либо тензорные функции, которые делают то, что я хочу.
Кроме того, мне трудно понять, что именно должна возвращать моя лямбда-функция. Является ли это тензором общей стоимости каждого образца или это просто общая стоимость партии?
Я бьюсь головой об это в течение нескольких дней. Любая помощь приветствуется.