Фактически tf.metrics.accuracy
вычисляет точность и для классификации с несколькими метками.См. Пример ниже:
import tensorflow as tf
labels = tf.constant([[1, 0, 0, 1],
[0, 1, 1, 1],
[1, 1, 0, 0],
[0, 0, 0, 1],
[1, 1, 0, 0]])
preds = tf.constant([[1, 0, 1, 1],
[0, 1, 1, 1],
[1, 1, 0, 0],
[0, 0, 0, 1],
[1, 1, 0, 0]])
acc, acc_op = tf.metrics.accuracy(labels, preds)
with tf.Session() as sess:
sess.run(tf.local_variables_initializer())
sess.run(tf.global_variables_initializer())
print(sess.run([acc, acc_op]))
print(sess.run([acc]))
Как вы можете видеть, у нас всего 20 меток, что только одна запись в первом ряду помечена неправильно, в результате наша точность составляет 0,95%.