tf.compat.v1.metrics.mean | TensorFlow v2.16.1 (original) (raw)
tf.compat.v1.metrics.mean
Stay organized with collections Save and categorize content based on your preferences.
Computes the (weighted) mean of the given values.
tf.compat.v1.metrics.mean(
values,
weights=None,
metrics_collections=None,
updates_collections=None,
name=None
)
Migrate to TF2
tf.compat.v1.metrics.mean is not compatible with eager execution or tf.function. Please use tf.keras.metrics.Mean instead for TF2 migration. After instantiating a tf.keras.metrics.Mean object, you can first call theupdate_state()
method to record the new values, and then call theresult()
method to get the mean eagerly. You can also attach it to a Keras model with the add_metric
method. Please refer to the migration guidefor more details.
Structural Mapping to TF2
Before:
mean, update_op = tf.compat.v1.metrics.mean(
values=values,
weights=weights,
metrics_collections=metrics_collections,
update_collections=update_collections,
name=name)
After:
m = tf.keras.metrics.Mean(
name=name)
m.update_state(
values=values,
sample_weight=weights)
mean = m.result()
How to Map Arguments
TF1 Arg Name | TF2 Arg Name | Note |
---|---|---|
values | values | 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():
values = [1, 2, 3]
mean, update_op = tf.compat.v1.metrics.mean(values)
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])
sess.run(update_op)
sess.run(mean)
2.0
After:
m = tf.keras.metrics.Mean()
m.update_state([1, 2, 3])
m.result().numpy()
2.0
# Used within Keras model
model.add_metric(tf.keras.metrics.Mean()(values))
Description
The mean
function creates two local variables, total
and count
that are used to compute the average of values
. This average is ultimately returned as mean
which is an idempotent operation that simply dividestotal
by count
.
For estimation of the metric over a stream of data, the function creates anupdate_op
operation that updates these variables and returns the mean
.update_op
increments total
with the reduced sum of the product of values
and weights
, and it increments count
with the reduced sum of weights
.
If weights
is None
, weights default to 1. Use weights of 0 to mask values.
Args | |
---|---|
values | A Tensor of arbitrary dimensions. |
weights | Optional Tensor whose rank is either 0, or the same rank asvalues, and must be broadcastable to values (i.e., all dimensions must be either 1, or the same as the corresponding values dimension). |
metrics_collections | An optional list of collections that meanshould be added to. |
updates_collections | An optional list of collections that update_opshould be added to. |
name | An optional variable_scope name. |
Returns | |
---|---|
mean | A Tensor representing the current mean, the value of total divided by count. |
update_op | An operation that increments the total and count variables appropriately and whose value matches mean_value. |
Raises | |
---|---|
ValueError | If weights is not None and its shape doesn't match values, or if either metrics_collections or updates_collections are not a list or tuple. |
RuntimeError | If eager execution is enabled. |