Share via


OnnxScoringEstimator Classe

Definição

IEstimator<TTransformer> para pontuar modelos ONNX na estrutura ML.NET.

public sealed class OnnxScoringEstimator : Microsoft.ML.Data.TrivialEstimator<Microsoft.ML.Transforms.Onnx.OnnxTransformer>
type OnnxScoringEstimator = class
    inherit TrivialEstimator<OnnxTransformer>
Public NotInheritable Class OnnxScoringEstimator
Inherits TrivialEstimator(Of OnnxTransformer)
Herança
OnnxScoringEstimator

Comentários

Características do estimador

Esse estimador precisa examinar os dados para treinar seus parâmetros? No
Tipo de dados de coluna de entrada Vetor de tamanho conhecido ou SingleDouble tipos
Tipo de dados de coluna de saída Conforme especificado pelo modelo ONNX
NuGet necessário além de Microsoft.ML Microsoft.ML.OnnxTransformer (sempre), Microsoft.ML.OnnxRuntime 1.6.0 (para processamento de CPU) ou Microsoft.ML.OnnxRuntime.Gpu 1.6.0 (para processamento de GPU se a GPU estiver disponível)
Exportável para ONNX No

Para criar esse estimador, use as seguintes APIs: ApplyOnnxModel

Dá suporte à inferência de modelos no formato ONNX 1.6 (opset 11), usando a biblioteca Microsoft.ML.OnnxRuntime . Os modelos serão pontuados na CPU se o projeto fizer referência a Microsoft.ML.OnnxRuntime e à GPU se o projeto fizer referência a Microsoft.ML.OnnxRuntime.Gpu. Cada projeto que usa o OnnxScoringEstimator deve fazer referência a um dos dois pacotes acima.

Para executar em uma GPU, use o pacote NuGet Microsoft.ML.OnnxRuntime.Gpu em vez do nuget Microsoft.ML.OnnxRuntime (que é para processamento de CPU). O Microsoft.ML.OnnxRuntime.Gpu requer uma GPU compatível com CUDA, o Kit de Ferramentas CUDA 10.2 e cuDNN 8.0.3 (conforme indicado na documentação do Onnxruntime). Ao criar o estimador por meio de ApplyOnnxModel, defina o parâmetro 'gpuDeviceId' como um inteiro não negativo válido. Os valores típicos de ID do dispositivo são 0 ou 1. Se o dispositivo GPU não for encontrado, mas 'fallbackToCpu = true', o estimador será executado na CPU. Se o dispositivo GPU não for encontrado, mas 'fallbackToCpu = false', o estimador lançará uma exceção

As entradas e saídas dos modelos ONNX devem ser do tipo Tensor. Ainda não há suporte para Sequência e Mapas.

Internamente, OnnxTransformer (o valor retornado de OnnxScoringEstimator.Fit()) mantém uma referência a uma sessão de inferência que aponta para a memória não gerenciada de propriedade de OnnxRuntime.dll. Sempre que houver uma chamada para ApplyOnnxModel em um pipeline, é recomendável converter o valor retornado da chamada Fit() para IDisposable e chamar Dispose() para garantir que não haja vazamentos de memória.

O OnnxRuntime funciona em plataformas Windows, MacOS e Ubuntu 16.04 Linux de 64 bits. Visite modelos ONNX para ver uma lista de modelos prontamente disponíveis para começar. Consulte ONNX para obter mais informações.

Métodos

Fit(IDataView)

IEstimator<TTransformer> para pontuar modelos ONNX na estrutura ML.NET.

(Herdado de TrivialEstimator<TTransformer>)
GetOutputSchema(SchemaShape)

Retorna o SchemaShape esquema que será produzido pelo transformador. Usado para propagação e verificação de esquema em um pipeline.

Métodos de Extensão

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Acrescente um "ponto de verificação de cache" à cadeia de estimativas. Isso garantirá que os estimadores downstream serão treinados em relação aos dados armazenados em cache. É útil ter um ponto de verificação de cache antes dos treinadores que fazem várias passagens de dados.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Dado um estimador, retorne um objeto de encapsulamento que chamará um delegado uma vez Fit(IDataView) chamado. Geralmente, é importante que um estimador retorne informações sobre o que estava em forma, e é por isso que o Fit(IDataView) método retorna um objeto especificamente tipado, em vez de apenas um geral ITransformer. No entanto, ao mesmo tempo, IEstimator<TTransformer> muitas vezes são formados em pipelines com muitos objetos, portanto, talvez seja necessário construir uma cadeia de estimadores por meio EstimatorChain<TLastTransformer> de onde o estimador para o qual queremos que o transformador seja enterrado em algum lugar nesta cadeia. Para esse cenário, podemos por meio desse método anexar um delegado que será chamado quando fit for chamado.

Aplica-se a