一些 TFX 组件使用架构来描述输入数据。架构是 schema.proto 的一个实例。它可以指定特征值的数据类型、是否在所有示样本中都必须存在特征、允许的值范围以及其他属性。SchemaGen 流水线组件将通过从训练数据中推断类型、类别和范围来自动生成架构。
- 使用:来自 StatisticsGen 组件的统计信息
- 发出:数据架构 proto
下面的代码摘自一个架构 proto:
...
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 Data Validation
- TensorFlow Transform
- TensorFlow Model Analysis
在典型的 TFX 流水线中,SchemaGen 会生成一个将由其他流水线组件使用的架构。
注:自动生成的架构是一种尽力而为的架构,仅会尝试推断数据的基本属性。开发者应根据需要对其进行检查和修改。
SchemaGen 和 TensorFlow Data Validation
SchemaGen 广泛使用 TensorFlow Data Validation 来推断架构。
使用 SchemaGen 组件
SchemaGen 流水线组件通常非常易于部署,而且几乎不需要自定义。典型代码如下所示:
from tfx import components
...
infer_schema = components.SchemaGen(
statistics=compute_training_stats.outputs['statistics'])