Я делаю нестандартные метри c в керасах на основе top_k_categorical_accuracy
. В моей пользовательской функции metri c я получаю y_true и pred (два тензора) с 3 измерениями, имеющими форму (batch_size, d2, d3) , но, очевидно, top_k_categorical_accuracy
ожидает 2-мерный тензор .
tf.keras.metrics.top_k_categorical_accuracy(y_true, y_pred, k=2)
Мой вопрос в том, как я могу применить эту функцию top_k к разным пакетам?
В приведенном ниже примере я ожидаю, что вывод metri c будет 1/2 (с k = 2).
Это можно сделать, взяв K.mean
из top_k_categorical_accuracy(y_true[0], y_pred[0])
(1-я партия дает 2/3 ) и top_k_categorical_accuracy(y_true[1], y_pred[1])
(2-я партия дает 1/3 ). Таким образом, среднее значение будет 1/2
y_true = [
[[0, 0, 1], [0, 1, 0], [1, 0, 0]],
[[0, 0, 1], [0, 1, 0], [1, 0, 0]]
]
y_pred = [
[[0.1, 0.7, 0.2], [0.05, 0.95, 0], [0.2,0.3,0.5]],
[[0.7, 0.2, 0.1], [0.95, 0, 0.05], [0.3,0.2,0.5]]
]