Функции потерь в Керасе возвращают объект Тензор. Вам нужно оценить этот объект Tensor, используя функцию eval()
из бэкэнда, чтобы получить его фактическое значение. Далее, если вы посмотрите на определение функций потерь в Керасе, скажем, mean_squared_error()
, вы поймете, что есть операция K.mean()
, которая принимает среднее значение по последней оси, которая является выходной осью (не путайте это с осью партии или образца). Следовательно, вам может потребоваться передать истинные и предсказанные значения в форме (n_samples, n_outputs)
, следовательно, изменяется в следующем коде:
import numpy as np
import pandas as pd
from keras import losses
from keras import backend as K
points = 100
df = pd.DataFrame({"error": np.linspace(-3,3,points)})
mse_loss = losses.mean_squared_error(np.zeros((points,1)), df["error"].values.reshape(-1,1))
df["mean_squared_error"] = K.eval(mse_loss)
df.plot(x="error")
Вот выходной график:
![enter image description here](https://i.stack.imgur.com/FGBHc.png)