Пользовательские потери в Keras из внешней функции Python - PullRequest
0 голосов
/ 18 марта 2019

Я хотел бы получить свои потери от внешнего источника, поэтому в моей функции потерь, где входные данные представляют собой матрицу 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 меняются по мере развития модели.

Спасибо!

...