Как мне сохранить статистику 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.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())