Как создать и использовать взвешенные метрики в Керасе? - PullRequest
1 голос
/ 25 февраля 2020

Я хочу сделать взвешенную метрику c и распечатать ее, пока Керас тренирует мои данные. Однако я не могу найти никаких рабочих примеров того, как это сделать.

При работе:

metrics = [MyClass.MyWeightedMetric]
model.compile(optimizer=RMSprop,loss="mean_squared_error",metrics=metrics)

, где

class MyClass: 
    @staticmethod
    def MyWeightedMetric(y_true,y_pred,sample_weight=None):
        print(sample_weight)
        #do stuff that doesn't even use sample_weight for now

, тогда он печатает None все время. Если я изменю строку компиляции на

model.compile(optimizer=RMSprop,loss="mean_squared_error",weighted_metrics=metrics)

, то получу ошибки:

(0) Invalid argument: Can not squeeze dim[0], expected a dimension of 1, got 16384

при вызове model.fit (). Мне не ясно, что я делаю неправильно или что я должен делать вместо этого. Я попытался создать подкласс, как в этом примере https://www.tensorflow.org/api_docs/python/tf/keras/metrics/Metric, но у него был собственный набор ошибок, которые я не смог устранить.

Есть ли где-нибудь рабочий пример взвешенных метрик в кератах что я могу предоставить на этапе компиляции модели? Я нахожу много примеров невзвешенного использования, но в данный момент невозможно найти работающий пример взвешенного метри c. Для чего стоит я использую Tensorflow 2.0

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