Что касается проверки данных тензорного потока TFX, я пытаюсь понять, когда мне следует использовать компоненты * Gen по сравнению с использованием методов, предоставляемых TFDV.
В частности, меня сбивает с толку то, что у меня в качестве ExampleGen используется следующее:
output = example_gen_pb2.Output(
split_config=example_gen_pb2.SplitConfig(splits=[
example_gen_pb2.SplitConfig.Split(name='train', hash_buckets=7),
example_gen_pb2.SplitConfig.Split(name='test', hash_buckets=2),
example_gen_pb2.SplitConfig.Split(name='eval', hash_buckets=1)
]))
example_gen = CsvExampleGen(input_base=os.path.join(base_dir, data_dir),
output_config=output)
context.run(example_gen)
Итак, я решил, что хочу сгенерировать свою статистику из моего разделения поездов, а не из исходного файла поезда, поэтому я попытался с:
statistics_gen = StatisticsGen(
examples=example_gen.outputs['examples'],
exclude_splits=['eval']
)
context.run(statistics_gen)
и это работает нормально. Но затем я попытался вывести свою схему (вставить звук зуммера):
schema = tfdv.infer_schema(statistics=statistics_gen)
и сознательно это вызывает ошибку ниже. Я полностью ожидал, что это неправильный тип, но я не могу понять, как извлечь из объекта StatsGen правильный вывод для передачи в метод infer_schema ().
В качестве альтернативы, если я преследую исключительно структуру компонентов на основе * Gen, она строится, но я не вижу, как правильно визуализировать схему, статистику и т. Д. Наконец, причина, по которой я использую здесь вызов tfdv.infer_schema () предназначен для аналогичного злополучного вызова display_schema (), который вызывает ошибку, если вы попытаетесь передать ему SchemaGen.
Ошибка сверху:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-11-93ceafbcb04a> in <module>
----> 1 schema = tfdv.infer_schema(statistics=validate_stats)
2 tfdv.write_schema_text(schema, schema_location)
3
4 tfdv.display(infer_schema)
/usr/local/lib/python3.6/dist-packages/tensorflow_data_validation/api/validation_api.py in infer_schema(statistics, infer_feature_shape, max_string_domain_size, schema_transformations)
95 raise TypeError(
96 'statistics is of type %s, should be '
---> 97 'a DatasetFeatureStatisticsList proto.' % type(statistics).__name__)
98
99 # This will raise an exception if there are multiple datasets, none of which
TypeError: statistics is of type ExampleValidator, should be a DatasetFeatureStatisticsList proto.
Я действительно пытаюсь понять, почему у нас есть компоненты, такие как SchemaGen и StatisticsGen, только для того, чтобы TFDV требовал, чтобы мы использовали внутренние функции, чтобы извлечь из этого пользу. Я предполагаю, что он предоставляет интерактивный конвейер и неинтерактивные сценарии, но мой поиск в Google оставил мне неясным.
Если есть способ генерировать и просматривать статистику на основе разделения моих данных, а не полагаться на средство чтения файлов, я бы тоже хотел это знать. (Если это не очевидно, да, я новичок в TFX).
TIA