Функция потери Keras, зависящая от входных функций - PullRequest
0 голосов
/ 24 сентября 2019

У меня проблема с многослойной классификацией с K метками, а также у меня есть функция, назовем ее f, которая для каждого примера в наборе данных принимает две матрицы, назовем их H и P.Обе матрицы являются частью входных данных.

Для каждого вектора меток y (для одного примера), т. Е. y - это вектор с размерностью (K \times 1), я вычисляю скалярное значение f_out = f(H, P, y),

Я хочу определить функцию потерь, которая минимизирует среднюю абсолютную процентную ошибку между двумя векторами, образованными значениями f_out_true = f(H, P, y_true) и f_out_pred = f(H, P, y_pred) для всех примеров.

Просмотр документации KerasЯ знаю, что настраиваемая функция потерь имеет вид custmLoss(y_pred, y_true), однако функция потерь, которую я хочу определить, зависит от входных данных, и эти значения f_out_true и f_out_pred необходимо вычислять пример за примером, чтобы сформировать двавекторы, которые я хочу минимизировать, средний абсолютный процент ошибок.

1 Ответ

2 голосов
/ 24 сентября 2019

Насколько я знаю, нет способа создать функцию потерь, которая бы принимала что-либо кроме вывода модели и соответствующей истинности.Таким образом, единственный способ сделать то, что вы хотите, это сделать входную часть вывода вашей модели.Для этого просто создайте свою модель с помощью функционального API, а затем добавьте входной тензор в список выходных данных:

input = Input(input_shape)

# build the rest of your model with the standard functional API here
# this example model was taken from the Keras docs
x = Dense(100, activation='relu')(input)
x = Dense(100, activation='relu')(x)
x = Dense(100, activation='relu')(x)
output = Dense(10, activation='softmax')(x)

model = Model(inputs=[input], outputs=[output, input])

Затем сделайте y_true комбинацией ваших входных данных и исходного заземления.правда.

У меня нет большого опыта работы с функциональным API, поэтому сложно быть более конкретным, но, надеюсь, это укажет вам правильное направление.

...