一部の 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 変換
- TensorFlow モデル分析
一般的な TFX パイプラインでは、SchemaGen によってスキーマが生成され、他のパイプライン コンポーネントによって使用されます。ただし、自動生成されたスキーマはベストエフォート型であり、データの基本的なプロパティの推論のみを試みます。開発者が必要に応じてレビューし、変更することが期待されます。
変更されたスキーマは、ImportSchemaGen コンポーネントを使用してパイプラインに戻すことができます。初期スキーマ生成用の SchemaGen コンポーネントは削除でき、すべてのダウンストリーム コンポーネントは ImportSchemaGen の出力を使用できます。インポートされたスキーマを使用してExampleValidatorを追加し、トレーニング データを継続的に検査することもお勧めします。
SchemaGen と TensorFlow データの検証
SchemaGen は、スキーマを推論するためにTensorFlow Data Validationを広範囲に利用します。
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
、テキスト protobuf ファイルへのフルパスである必要があります。
詳細については、 ImportSchemaGen API リファレンスを参照してください。