ML Community Day is November 9! Join us for updates from TensorFlow, JAX, and more Learn more

tf.compat.v1.metrics.accuracy

Calculates how often predictions matches labels.

Migrate to TF2

tf.compat.v1.metrics.accuracy is not compatible with eager execution and tf.function. Please use tf.keras.metrics.Accuracy instead for TF2 migration. After instantiating a tf.keras.metrics.Accuracy object, you can first call the update_state() method to record the prediction/labels, and then call the result() method to get the accuracy eagerly. You can also attach it to a Keras model when calling the compile method. Please refer to this guide for more details.

Structural Mapping to Native TF2

Before:

accuracy, update_op = tf.compat.v1.metrics.accuracy(
  labels=labels,
  predictions=predictions,
  weights=weights,
  metrics_collections=metrics_collections,
  update_collections=update_collections,
  name=name)

After:

 m = tf.keras.metrics.Accuracy(
   name=name,
   dtype=None)

 m.update_state(
 y_true=labels,
 y_pred=predictions,
 sample_weight=weights)

 accuracy = m.result()

How to Map Arguments

TF1 Arg Name TF2 Arg Name Note
label y_true In update_state() method
predictions y_true In update_state() method
weights sample_weight In update_state() method
metrics_collections Not supported Metrics should be tracked : explicitly or with Keras APIs, for example, add_metric, instead of via collections
updates_collections Not supported -
name name In constructor

Before & After Usage Example

Before:

g = tf.Graph()
with g.as_default():
  logits = [1, 2, 3]
  labels = [0, 2, 3]
  acc, acc_op = tf.compat.v1.metrics.accuracy(logits, labels)
  global_init = tf.compat.v1.global_variables_initializer()
  local_init = tf.compat.v1.local_variables_initializer()
sess = tf.compat.v1.Session(graph=g)
sess.run([global_init, local_init])
print(sess.run([acc, acc_op]))
[0.0, 0.66667]

After:

m = tf.keras.metrics.Accuracy()
m.update_state([1, 2, 3], [0, 2, 3])
m.result().numpy()
0.66667
# Used within Keras model
model.compile(optimizer='sgd',
              loss='mse',
              metrics=[tf.keras.metrics.Accuracy()])

Description

Used in the notebooks

Used in the guide Used in the tutorials

The accuracy function creates two local variables, total and count that are used to compute the frequency with which predictions matches labels. This frequency is ultimat