Реализация пользовательских keras metri c с внешним параметром - PullRequest
0 голосов
/ 02 марта 2020

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

Идея моей метри c:

def custom_metric(y_true, y_pred, other_values):
   """
   y_true is training data, binary value
   y_pred is predicted values 
   other_values is an inputted tensor, includes values in (0, 2) """

   Use K backend to return the proper value.
   ...

Могут быть и другие способы сделать то же вычисление, эффективно решая ту же проблему. Одним из них будет контрольная точка модели в каждую эпоху и запуск этого анализа после завершения обучения. Однако я бы предпочел этого не делать, поскольку я тренируюсь на TPU, а копирование весов в ЦП требует компиляции в каждую эпоху и будет стоить 100-кратное время обучения.

Есть ли у кого-нибудь умный способ реализовать эту технику? Или в метри c или каким-то другим способом?

1 Ответ

0 голосов
/ 03 марта 2020

Ответом на это будет использование функции обтекания:

Т.е.

def custom_metric(my_variable):
   # 1. conversion of my_variable to tensor
   def metric_name(y_pred, y_true):
      # 2. return tensorflow backend metric, utilizing custom tensor
   return metric_name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...