Questions about TFX? Join us at Google I/O!

StatisticsGen TFX 流水线组件

StatisticsGen TFX 流水线组件根据训练数据和应用数据来生成特征统计信息,以供其他流水线组件使用。StatisticsGen 使用 Beam 来扩展为大型数据集。

  • 使用:由 ExampleGen 流水线组件创建的数据集。
  • 发出:数据集统计信息。

StatisticsGen 和 TensorFlow Data Validation

StatisticsGen 广泛使用 TensorFlow Data Validation 来根据您的数据集生成统计信息。

使用 StatsGen 组件

StatisticsGen 流水线组件通常非常易于部署,而且几乎不需要自定义。典型代码如下所示:

from tfx import components

...

compute_eval_stats = components.StatisticsGen(
      examples=example_gen.outputs['examples'],
      name='compute-eval-stats'
      )

将 StatsGen 组件与架构一起使用

当流水线第一次运行时,StatisticsGen 的输出将用于推断架构。不过,在随后的运行中,您可能具有手动选择的架构,其中包含有关数据集的附加信息。通过将此架构提供给 StatisticsGen,TFDV 可以根据数据集的已声明属性提供更多有用的统计信息。

在此设置中,您将使用由 ImporterNode 导入的精选架构调用 StatisticsGen,代码如下所示:

from tfx import components
from tfx.types import standard_artifacts

...

user_schema_importer = components.ImporterNode(
    instance_name='import_user_schema',
    source_uri=user_schema_dir, # directory containing only schema text proto
    artifact_type=standard_artifacts.Schema)

compute_eval_stats = components.StatisticsGen(
      examples=example_gen.outputs['examples'],
      schema=user_schema_importer.outputs['result'],
      name='compute-eval-stats'
      )

创建精选架构

TFX 中的 Schema 是 TensorFlow Metadata Schema proto 的一个实例。这可以从头开始以文本格式创作。但是,将 SchemaGen 生成的推断架构用作起点要容易得多。执行 SchemaGen 组件后,架构将位于以下路径的流水线根目录下:

<pipeline_root>/SchemaGen/schema/<artifact_id>/schema.pbtxt

其中,<artifact_id> 表示 MLMD 中此版本架构的唯一 ID。随后,可以修改此架构 proto 以传达有关无法可靠推断的数据集的信息,这样,StatisticsGen 的输出便会更加有用,而且 ExampleValidator 组件中执行的验证也会更加严格。