一些 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 参考。