O componente de pipeline SchemaGen TFX

Alguns componentes do TFX usam uma descrição dos seus dados de entrada chamada esquema . O esquema é uma instância de schema.proto . Ele pode especificar tipos de dados para valores de recursos, se um recurso deve estar presente em todos os exemplos, intervalos de valores permitidos e outras propriedades. Um componente de pipeline SchemaGen gerará automaticamente um esquema inferindo tipos, categorias e intervalos dos dados de treinamento.

  • Consome: estatísticas de um componente StatisticsGen
  • Emite: Protocolo de esquema de dados

Aqui está um trecho de um proto de esquema:

...
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
  }
}
...

As seguintes bibliotecas TFX usam o esquema:

  • Validação de dados do TensorFlow
  • Transformação TensorFlow
  • Análise do modelo TensorFlow

Em um pipeline TFX típico, o SchemaGen gera um esquema, que é consumido pelos outros componentes do pipeline. No entanto, o esquema gerado automaticamente é o melhor esforço e apenas tenta inferir propriedades básicas dos dados. Espera-se que os desenvolvedores o revisem e modifiquem conforme necessário.

O esquema modificado pode ser trazido de volta ao pipeline usando o componente ImportSchemaGen. O componente SchemaGen para a geração inicial do esquema pode ser removido e todos os componentes downstream podem usar a saída de ImportSchemaGen. Também é recomendado adicionar ExampleValidator usando o esquema importado para examinar os dados de treinamento continuamente.

Validação de dados SchemaGen e TensorFlow

SchemaGen faz uso extensivo da validação de dados do TensorFlow para inferir um esquema.

Usando o componente SchemaGen

Para a geração inicial do esquema

Um componente de pipeline SchemaGen normalmente é muito fácil de implantar e requer pouca personalização. O código típico é assim:

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

Mais detalhes estão disponíveis na referência da API SchemaGen .

Para a importação do esquema revisado

Adicione o componente ImportSchemaGen ao pipeline para trazer a definição de esquema revisada para o pipeline.

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

O schema_file deve ser um caminho completo para o arquivo protobuf de texto.

Mais detalhes estão disponíveis na referência da API ImportSchemaGen .