Как рассчитать точность для многослойной классификации с помощью tf.metrics? - PullRequest
0 голосов
/ 16 октября 2018

Я хочу обучить многослойную классификационную модель с тензорным потоком (tf.estimator.Estimator).Мне нужно вывести точность при оценке.Но, похоже, не работает со следующим кодом:

accuracy = tf.metrics.accuracy(labels=labels, predictions=preds)
metrics = {'accuracy': accuracy}

if mode == tf.estimator.ModeKeys.EVAL:
    return tf.estimator.EstimatorSpec(mode, loss=loss, eval_metric_ops=metrics)

tf.metrics.accuracy не для многократного результата.Так что же такое многометровая метрика?

1 Ответ

0 голосов
/ 03 января 2019

Фактически 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%.

...