Как мне вернуть значения ошибок функции потерь Кераса (тензор) - PullRequest
0 голосов
/ 30 октября 2018

Я хотел бы представить все различные функции потерь, доступные в Керасе. Поэтому я создал фрейм данных и вызвал функцию потерь. Но как мне вернуть значения из тензора?

import numpy as np
import pandas as pd
from keras import losses

points = 100
df = pd.DataFrame({"error": np.linspace(-3,3,points)})
df["mean_squared_error"] = losses.mean_squared_error(np.zeros(points), df["error"])
df.plot(x="error")

1 Ответ

0 голосов
/ 30 октября 2018

Функции потерь в Керасе возвращают объект Тензор. Вам нужно оценить этот объект 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...