SchemaGen TFX 管道组件

一些 TFX 组件使用对输入数据的描述,称为模式。模式是 schema.proto 的实例。它可以指定特征值的类型、特征是否必须存在于所有示例中、允许的值范围以及其他属性。SchemaGen 管道组件将通过从训练数据中推断类型、类别和范围来自动生成模式。

  • 消耗:来自 StatisticsGen 组件的统计信息
  • 发出:数据模式协议缓冲区

以下是模式协议缓冲区的一部分

...
feature {
  name: "age"
  value_count {
    min: 1
    max: 1
  }
  type: FLOAT
  presence {
    min_fraction: 1
    min_count: 1
  }
}
feature {
  name: "capital-gain"
  value_count {
    min: 1
    max: 1
  }
  type: FLOAT
  presence {
    min_fraction: 1
    min_count: 1
  }
}
...

以下 TFX 库使用模式

  • TensorFlow 数据验证
  • TensorFlow Transform
  • TensorFlow 模型分析

在典型的 TFX 管道中,SchemaGen 会生成一个模式,该模式会被其他管道组件使用。但是,自动生成的模式是尽力而为的,只尝试推断数据的基本属性。预计开发人员会根据需要审查和修改它。

可以使用 ImportSchemaGen 组件将修改后的模式重新引入管道。用于初始模式生成的 SchemaGen 组件可以删除,所有下游组件都可以使用 ImportSchemaGen 的输出。还建议使用导入的模式添加 ExampleValidator 来持续检查训练数据。

SchemaGen 和 TensorFlow 数据验证

SchemaGen 广泛使用 TensorFlow 数据验证 来推断模式。

使用 SchemaGen 组件

用于初始模式生成

SchemaGen 管道组件通常非常易于部署,并且需要很少的自定义。典型的代码如下所示

schema_gen = tfx.components.SchemaGen(
    statistics=stats_gen.outputs['statistics'])

有关更多详细信息,请参阅 SchemaGen API 参考

用于审查后的模式导入

将 ImportSchemaGen 组件添加到管道中,以将审查后的模式定义引入管道。

schema_gen = tfx.components.ImportSchemaGen(
    schema_file='/some/path/schema.pbtxt')

schema_file 应该是文本协议缓冲区文件的完整路径。

有关更多详细信息,请参阅 ImportSchemaGen API 参考