Я пытаюсь реализовать пользовательскую метрическую функцию в Keras, чтобы найти точность при k следующим образом:
def PAt20(y_true, y_pred):
score, up_opt = tf.metrics.precision_at_k(y_true, y_pred, 20)
K.get_session().run(tf.local_variables_initializer())
with tf.control_dependencies([up_opt]):
score = tf.identity(score)
return score
где K - keras.backend, но она вообще не работает, когда функцияВызванный во время компиляции модели, я получаю ошибку:
вход должен иметь последнее измерение> = k = 20, но равен 1 для 'metrics_7 / PAt20 / precision_at_20 / TopKV2' (op: 'TopKV2') с формами ввода: [?, 1], [] и с вычисленными тензорами ввода: input [1] = <20>.
любые предложения?