Как мне сохранить статистику TFDV в правильном формате, чтобы она могла быть загружена обратно?

Меня озадачивает, что существует 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 ответа

В текущем 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)

Вы пробовали это: tfdv.utils.stats_util.write_stats_text?

Есть функция под названиемtfdv.load_stats_binaryкоторые вы можете использовать для решения этой проблемы.

Хорошо, придумайте этот хакерский способ сделать это.

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())
Другие вопросы по тегам