Как использовать веса выборки в пользовательской функции потерь в Keras? - PullRequest
1 голос
/ 05 апреля 2019

Я использую пользовательскую функцию потерь в keras.Теперь я хочу использовать выборочные веса в Keras.

Я искал в Google, и некоторые статьи предлагают model.fit(X,y,sample_weight= custom_weights)

Но я хочу использовать вес пробы непосредственно в пользовательской функции потери.Моя пользовательская функция потери довольно сложна, и по какой-то причине мне нужно обрабатывать вес пробы напрямую.

, например:

custom_weights = np.array([1,2,3,4,5,6,7,8,9,10])

#my failed attempt
def custom_loss_function(y_true, y_pred , custom_weights):
    return K.mean(K.abs(y_pred - y_true) * custom_weights), axis=-1)

Примечание: моя настоящая функция custom_loss_function очень сложна.В этом вопросе я использую «MAE» в качестве примера, чтобы упростить проблему, чтобы мы могли сосредоточиться на ответе «как использовать веса выборки в custom_loss_function»

как правильно выполнить эту задачу?

1 Ответ

0 голосов
/ 05 апреля 2019

Вы можете использовать sklearn:

from sklearn.utils import compute_class_weight
import numpy as np

classWeight = compute_class_weight('balanced', np.unique(target) , target) 
classWeight = dict(enumerate(classWeight))

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