Это что-то похожее на это , которое говорит о том, что с Keras невозможно (или очень сложно) определить функцию потерь, которая зависит от модели обучения.Интересно, можно ли определить такую функцию потерь в TensorFlow или pyTorch.
Упрощенный пример проблемы заключается в следующем:
По сути, модель принимает два входа (x, p) и выдает один выход(с).то есть c = f (x, p).Вход и выход модели:
Input data = x(i,t), p(i,t)
output data = c(i,t)
i=1,2,3,...N is the sample number
t=1,2,3,...T is the time series
. Конечно, модель не зависит от номера выборки i и времени t.Таким образом, цель состоит в том, чтобы найти преобразование из (x, y) в (c), такое, что c является инвариантом времени.
Функция потерь должна быть построена так, чтобы
c(i,t) is same for all t (i.e., constant of motion)
в частности, например, мы можем построить функцию потерь как
loss = sum_over_t (c(i,0)-c(i,t))**2
Однако, как вы видите, функция потерь зависит от c (t) = f (x (i, t), p (i, t).))
Еще более простой случай будет
x(i,t) = A_i*cos(w_t*t + b_i)
p(i,t) = A_i*sin(w_t*t + b_i)
so that trained model becomes f(x,p) = f(x**2 + p**2)