StatisticsGen TFX 管道组件会生成训练数据和服务数据的特征统计信息,其他管道组件可以使用这些统计信息。StatisticsGen 使用 Beam 来扩展到大型数据集。
- 使用:由 ExampleGen 管道组件创建的数据集。
- 输出:数据集统计信息。
StatisticsGen 和 TensorFlow 数据验证
StatisticsGen 广泛使用 TensorFlow 数据验证 从您的数据集中生成统计信息。
使用 StatsGen 组件
StatisticsGen 管道组件通常非常易于部署,并且需要很少的自定义。典型的代码如下所示
compute_eval_stats = StatisticsGen(
examples=example_gen.outputs['examples'],
name='compute-eval-stats'
)
使用带模式的 StatsGen 组件
对于管道的第一次运行,StatisticsGen 的输出将用于推断模式。但是,在后续运行中,您可能拥有一个手动整理的模式,其中包含有关数据集的更多信息。通过将此模式提供给 StatisticsGen,TFDV 可以根据您数据集的声明属性提供更有用的统计信息。
在此设置中,您将使用已由 ImporterNode 导入的整理模式调用 StatisticsGen,如下所示
user_schema_importer = Importer(
source_uri=user_schema_dir, # directory containing only schema text proto
artifact_type=standard_artifacts.Schema).with_id('schema_importer')
compute_eval_stats = StatisticsGen(
examples=example_gen.outputs['examples'],
schema=user_schema_importer.outputs['result'],
name='compute-eval-stats'
)
创建整理模式
Schema
在 TFX 中是 TensorFlow Metadata 的实例 Schema
proto。这可以在 文本格式 中从头开始编写。但是,使用 SchemaGen
生成的推断模式作为起点更容易。一旦 SchemaGen
组件执行完毕,模式将位于管道根目录下的以下路径
<pipeline_root>/SchemaGen/schema/<artifact_id>/schema.pbtxt
其中 <artifact_id>
表示 MLMD 中此模式版本的唯一 ID。然后可以修改此模式 proto 以传达有关数据集的信息,这些信息无法可靠地推断出来,这将使 StatisticsGen
的输出更有用,并且在 ExampleValidator
组件中执行的验证更加严格。
更多详细信息可在 StatisticsGen API 参考 中找到。