Я хотел бы получить свои потери от внешнего источника, поэтому в моей функции потерь, где входные данные представляют собой матрицу 0, я сбрасываю их обратно в ноль (yPred - yTrue - yPred), а затем увеличиваю это значение 0по моим true_loss, который из my_function (x, y, z):
def lossFunction(yTrue,yPred):
#x = output 1
#y = output 2
#z = output 3
true_loss = my_function(x, y, z) #LOWER IS BETTER
return K.mean(K.square(yPred - yTrue - yPred) + true_loss, axis=-1) #first part is always 0, plus our custom (true) loss
Мне нужно, чтобы x, y и z были выходами конечного слоя (плотного слоя из 3 нейронов), которыечисла, а затем функция оценивает этот набор чисел
Таким образом, цель сети - игнорировать входные данные и минимизировать функцию my_function (...)
Возможно ли это?Поскольку я заметил, что с печатью, функция lossFunction выполняется только один раз в самом начале.Пользовательский обратный вызов имеет ту же проблему, поскольку переменные не могут быть обновлены внутри функции потерь, и функция my_function будет динамической, поскольку x, y и z меняются по мере развития модели.
Спасибо!