gpt4 book ai didi

python - 如何在 Tensorflow 中计算整个数据集的统计数据(总和、均值、方差等)

转载 作者:行者123 更新时间:2023-12-04 17:25:42 29 4
gpt4 key购买 nike

Pandas 中计算数据集中每个特征的平均值、总数等似乎很简单。和 Numpy ,但我找不到任何类似的简单功能/操作 tf.data.Dataset .其实我找到了 tf.data.Dataset.reduce 这允许我计算运行 sum ,但其他操作就没那么容易了( minmaxstd 等)

所以,我的问题是,是否有一种简单的方法来计算 tf.data.Dataset 的统计信息? ?此外,有没有办法标准化/规范化(一个整体,即不是批量)tf.data.Dataset ,特别是如果不使用 tf.data.Dataset.reduce ?

最佳答案

So, my question is, is there a simple way to compute statistics for tf.data.Dataset?


这取决于您希望计算的统计数据。
例如,要计算最小值或最大值,您可以使用:
import numpy as np
import tensorflow as tf

ds = tf.data.Dataset.range(10, output_type=tf.float32) # sample dataset

minimum = ds.reduce(np.Inf, tf.math.minimum) # 0.0
maximum = ds.reduce(-np.Inf, tf.math.maximum) # 9.0
这是因为 tf.data.Dataset.reduce 对reduce 函数的要求由minimum 和maximum 直接满足。
要计算平均值(可能还有其他统计数据),一种方法是使用 Keras metrics .代码变得有点困惑,但它确实有效:
mean = tf.keras.metrics.Mean()
for batch in ds:
mean.update_state(batch)

print(m.result().numpy()) # 7.0
要计算 Keras 中可用的统计数据以外的统计数据,我想您必须编写自己的 reducer 函数。例如,如果你想为标准偏差实现一个 reducer,你可以 calculate it基于以前的标准差和新的平均值。

Moreover, is there a way to standardize/normalize (an entire, i.e. not in batch) tf.data.Dataset, especially if not using tf.data.Dataset.reduce?


不,这是不可能的,因为 tf.data.Dataset 中的元素在您生成它们之前不一定知道。

关于python - 如何在 Tensorflow 中计算整个数据集的统计数据(总和、均值、方差等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63557158/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com