Compartilhar via


TensorflowCatalog Classe

Definição

O TensorFlowTransformer é usado nos dois cenários a seguir.

  1. Pontuação com modelo tensorFlow pré-treinado: nesse modo, a transformação extrai os valores de camadas ocultas de um modelo tensorflow pré-treinado e usa saídas como recursos no pipeline ML.Net.
  2. Retreinamento do modelo TensorFlow : nesse modo, a transformação treina novamente um modelo TensorFlow usando os dados do usuário passados por ML.Net pipeline. Depois que o modelo é treinado, suas saídas podem ser usadas como recursos para pontuação.
public static class TensorflowCatalog
type TensorflowCatalog = class
Public Module TensorflowCatalog
Herança
TensorflowCatalog

Comentários

O TensorFlowTransform extrai as saídas especificadas usando um modelo tensorflow pré-treinado. Opcionalmente, ele pode treinar ainda mais o modelo TensorFlow em dados do usuário para ajustar parâmetros de modelo nos dados do usuário ( também conhecido como "Transferir Aprendizado").

Para pontuação, a transformação usa como entradas o modelo tensorflow pré-treinado, os nomes dos nós de entrada e os nomes dos nós de saída cujos valores queremos extrair. Para treinar novamente, a transformação também requer parâmetros relacionados ao treinamento, como os nomes da operação de otimização no grafo TensorFlow, o nome da operação de taxa de aprendizagem no grafo e seu valor, o nome das operações no grafo para calcular a perda e a métrica de desempenho etc.

Essa transformação requer que o nuget Microsoft.ML.TensorFlow seja instalado. O TensorFlowTransform tem as seguintes suposições sobre entrada, saída, processamento de dados e retreinamento.

  1. Para o modelo de entrada, atualmente o TensorFlowTransform dá suporte ao formato de modelo Frozen e também ao formato SavedModel . No entanto, o retreinamento do modelo só é possível para o formato SavedModel . No momento, o formato de ponto de verificação não tem suporte para pontuação nem para retreinamento devido à falta de suporte à C-API tensorFlow para carregá-lo.
  2. A transformação dá suporte à pontuação de apenas um exemplo por vez. No entanto, o retreinamento pode ser executado em lotes.
  3. Cenários avançados de aprendizado de transferência/ajuste fino (por exemplo, adicionar mais camadas à rede, alterar a forma de entradas, congelar as camadas que não precisam ser atualizadas durante o processo de retreinamento etc.) atualmente não são possíveis devido à falta de suporte para manipulação de rede/grafo dentro do modelo usando a C-API tensorFlow.
  4. O nome das colunas de entrada deve corresponder ao nome das entradas no modelo TensorFlow.
  5. O nome de cada coluna de saída deve corresponder a uma das operações no grafo TensorFlow.
  6. Atualmente, double, float, long, int, short, sbyte, ulong, uint, ushort, byte e bool são os tipos de dados aceitáveis para entrada/saída.
  7. Após o sucesso, a transformação introduzirá uma nova coluna correspondente IDataView a cada coluna de saída especificada.

As entradas e saídas de um modelo tensorFlow podem ser obtidas usando as GetModelSchema() ferramentas ou summarize_graph .

Métodos

LoadTensorFlowModel(ModelOperationsCatalog, String, Boolean)

Carregue o modelo TensorFlow na memória. Esse é o método de conveniência que permite que o modelo seja carregado uma vez e, posteriormente, use-o para consultar o esquema e a criação do TensorFlowEstimator uso ScoreTensorFlowModel(String, String, Boolean). o uso dessa API requer dependências adicionais do NuGet no tensorFlow redist, consulte o documento vinculado para obter mais informações. TensorFlowModel também contém referências a recursos não gerenciados que precisam ser liberados com uma chamada explícita para Dispose() ou implicitamente declarando a variável com a sintaxe "using" />

LoadTensorFlowModel(ModelOperationsCatalog, String)

Carregue o modelo TensorFlow na memória. Esse é o método de conveniência que permite que o modelo seja carregado uma vez e, posteriormente, use-o para consultar o esquema e a criação do TensorFlowEstimator uso ScoreTensorFlowModel(String, String, Boolean). o uso dessa API requer dependências adicionais do NuGet no tensorFlow redist, consulte o documento vinculado para obter mais informações. TensorFlowModel também contém referências a recursos não gerenciados que precisam ser liberados com uma chamada explícita para Dispose() ou implicitamente declarando a variável com a sintaxe "using" />

Aplica-se a

Confira também