当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.compat.v1.metrics.mean用法及代码示例


计算给定值的(加权)平均值。

用法

tf.compat.v1.metrics.mean(
    values, weights=None, metrics_collections=None, updates_collections=None,
    name=None
)

参数

  • values 任意维度的Tensor
  • weights 可选Tensor,其秩为0,或与values相同的秩,并且必须可广播到values(即,所有维度必须是1,或与相应的values维度相同) .
  • metrics_collections mean 应添加到的可选集合列表。
  • updates_collections update_op 应添加到的可选集合列表。
  • name 可选的 variable_scope 名称。

返回

  • mean A Tensor 表示当前平均值,total 的值除以 count
  • update_op 适当增加 totalcount 变量并且其值与 mean_value 匹配的操作。

抛出

  • ValueError 如果 weights 不是 None 并且其形状与 values 不匹配,或者如果 metrics_collectionsupdates_collections 不是列表或元组。
  • RuntimeError 如果启用了即刻执行。

迁移到 TF2

警告:这个 API 是为 TensorFlow v1 设计的。继续阅读有关如何从该 API 迁移到本机 TensorFlow v2 等效项的详细信息。见TensorFlow v1 到 TensorFlow v2 迁移指南有关如何迁移其余代码的说明。

tf.compat.v1.metrics.mean 与即刻执行或 tf.function 不兼容。请改用tf.keras.metrics.Mean 进行 TF2 迁移。实例化tf.keras.metrics.Mean对象后,可以先调用update_state()方法记录新值,然后调用result()方法即刻求平均值。您还可以使用 add_metric 方法将其附加到 Keras 模型。有关详细信息,请参阅迁移指南。

到 TF2 的结构映射

前:

mean, update_op = tf.compat.v1.metrics.mean(
  values=values,
  weights=weights,
  metrics_collections=metrics_collections,
  update_collections=update_collections,
  name=name)

后:

m = tf.keras.metrics.Mean(
   name=name)

 m.update_state(
   values=values,
   sample_weight=weights)

 mean = m.result()

如何映射参数

TF1 参数名称 TF2 参数名称 注意
values values update_state() 方法中
weights sample_weight update_state() 方法中
metrics_collections 不支持 应显式跟踪指标或使用 Keras API,例如add_metric,而不是通过集合
updates_collections 不支持 -
name name 在构造函数中

使用示例之前和之后

前:

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

后:

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))

mean 函数创建两个局部变量 totalcount 用于计算 values 的平均值。该平均值最终返回为 mean ,这是一个幂等运算,只需将 total 除以 count

为了估计数据流上的度量,该函数创建一个 update_op 操作来更新这些变量并返回 meanupdate_optotalvaluesweights 的乘积之和相加,并以 weights 之和的减小之和增加 count

如果 weightsNone ,则权重默认为 1。使用权重 0 来屏蔽值。

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.compat.v1.metrics.mean。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。