0

令我困惑的是,有一个tfdv.load_statistics()功能,但没有相应的tfdv.write_statistics()功能。如何保存统计信息,然后再次加载它们?

例如

import tensorflow_data_validation as tfdv
stats = tfdv.generate_statistics_from_dataframe(df)

# how do I save?


# load back for later use
saved_stats = tfdv.load_statistics('saved_stats.stats')

我可以将字符串表示形式保存到文件中,但这不是 load_statistics 期望的格式。

with open('saved_stats.stats', 'w') as o:
    o.write(str(stats))

有人指点吗?

4

3 回答 3

1

你试过这个:tfdv.utils.stats_util.write_stats_text 吗?

于 2020-10-08T13:52:34.913 回答
1

在当前tfdv版本1.3.0中,可以使用以下方法:

例子:

import tensorflow_data_validation as tfdv

stats = tfdv.generate_statistics_from_dataframe(df)
stats_path = "my-stats-file.stats"

# saving
tfdv.write_stats_text(stats, stats_path)


# loading
stats = tfdv.load_stats_text(stats_path)

于 2021-09-27T18:44:24.123 回答
0

好吧,想出这个 hacky 方法来做到这一点。

df = ... # create pandas df
from tensorflow_metadata.proto.v0 import statistics_pb2
import tensorflow_data_validation as tfdv
stats = tfdv.generate_statistics_from_dataframe(df)

# save it
with open('saved_stats.stats', 'wb') as o:
    o.write(stats.SerializeToString())

# load back for later use
with open('saved_stats.stats', 'rb') as i:
    loaded_stats = statistics_pb2.FromString(i.read())
于 2020-03-20T18:53:47.567 回答