LearningModelBinding.Bind Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
Bind(String, Object) |
Associe um valor ao recurso nomeado. |
Bind(String, Object, IPropertySet) |
Associe um valor ao recurso nomeado usando propriedades para controlar a associação. |
Bind(String, Object)
Associe um valor ao recurso nomeado.
public:
virtual void Bind(Platform::String ^ name, Platform::Object ^ value) = Bind;
/// [Windows.Foundation.Metadata.Overload("Bind")]
void Bind(winrt::hstring const& name, IInspectable const& value);
[Windows.Foundation.Metadata.Overload("Bind")]
public void Bind(string name, object value);
function bind(name, value)
Public Sub Bind (name As String, value As Object)
Parâmetros
- name
-
String
Platform::String
winrt::hstring
O nome do recurso.
- value
-
Object
Platform::Object
IInspectable
O valor a ser associado.
- Atributos
Exemplos
O exemplo a seguir recupera os primeiros recursos de entrada e saída, cria um quadro de saída, associa os recursos de entrada e saída e é evaulado.
private async Task EvaluateModelAsync(
VideoFrame _inputFrame,
LearningModelSession _session,
IReadOnlyList<ILearningModelFeatureDescriptor> _inputFeatures,
IReadOnlyList<ILearningModelFeatureDescriptor> _outputFeatures,
LearningModel _model)
{
ImageFeatureDescriptor _inputImageDescription;
TensorFeatureDescriptor _outputImageDescription;
LearningModelBinding _binding = null;
VideoFrame _outputFrame = null;
try
{
// Retrieve the first input feature which is an image
_inputImageDescription =
_inputFeatures.FirstOrDefault(feature => feature.Kind == LearningModelFeatureKind.Image)
as ImageFeatureDescriptor;
// Retrieve the first output feature which is a tensor
_outputImageDescription =
_outputFeatures.FirstOrDefault(feature => feature.Kind == LearningModelFeatureKind.Tensor)
as TensorFeatureDescriptor;
// Create output frame based on expected image width and height
_outputFrame = new VideoFrame(
BitmapPixelFormat.Bgra8,
(int)_inputImageDescription.Width,
(int)_inputImageDescription.Height);
// Create binding and then bind input/output features
_binding = new LearningModelBinding(_session);
_binding.Bind(_inputImageDescription.Name, _inputFrame);
_binding.Bind(_outputImageDescription.Name, _outputFrame);
// Evaluate and get the results
var results = await _session.EvaluateAsync(_binding, "test");
}
catch (Exception ex)
{
StatusBlock.Text = $"error: {ex.Message}";
_model = null;
}
}
Comentários
Windows Server
Para usar essa API no Windows Server, você deve usar o Windows Server 2019 com a Experiência desktop.
Acesso thread-safe
Essa API é thread-safe.
Aplica-se a
Bind(String, Object, IPropertySet)
Associe um valor ao recurso nomeado usando propriedades para controlar a associação.
public:
virtual void Bind(Platform::String ^ name, Platform::Object ^ value, IPropertySet ^ props) = Bind;
/// [Windows.Foundation.Metadata.Overload("BindWithProperties")]
void Bind(winrt::hstring const& name, IInspectable const& value, IPropertySet const& props);
[Windows.Foundation.Metadata.Overload("BindWithProperties")]
public void Bind(string name, object value, IPropertySet props);
function bind(name, value, props)
Public Sub Bind (name As String, value As Object, props As IPropertySet)
Parâmetros
- name
-
String
Platform::String
winrt::hstring
O nome do recurso ao qual associar.
- value
-
Object
Platform::Object
IInspectable
O valor a ser associado ao recurso.
- props
- IPropertySet
Um mapa de propriedades com pares chave-valor que descrevem o comportamento de tensorização e destensorização da associação. Para obter mais detalhes, consulte a seção Comentários .
- Atributos
Comentários
Esses são os pares chave-valor válidos para o parâmetro props :
Nome | Valor | Descrição |
---|---|---|
BitmapBounds | PropertyType.UInt32Array | Ao associar uma entrada, a propriedade BitmapBounds especifica limites de corte. A imagem cortada será extraída e usada como a entrada para executar a inferência. Ao associar uma saída, a propriedade BitmapBounds especifica limites para uma região de saída de destino. O resultado da inferência será gravado na região de saída de destino dentro da imagem associada. A propriedade BitmapBounds é especificada como uma matriz UInt32 com os valores [left, top, width, height] . Essa propriedade entra em vigor somente ao associar um ImageFeatureValue. |
BitmapPixelFormat | PropertyType.Int32 | Ao associar uma entrada ou saída, a propriedade BitmapPixelFormat especifica o formato de pixel pretendido pelo autor do modelo para um valor de recurso específico. Quando os metadados Image.BitmapPixelFormat estão ausentes dos metadados image do modelo ONNX, eles podem ser especificados em runtime usando essa propriedade. As imagens associadas serão convertidas automaticamente no formato de pixel especificado para consumo pelo modelo. O BitmapPixelFormat deve ser especificado como um valor Int32 correspondente aos valores na enumeração Windows.Graphics.Imaging.BitmapPixelFormat . Atualmente, há suporte para os seguintes valores:
|
DisableTensorCpuSync | PropertyType.Boolean | Ao associar um tensor de saída apoiado por um ID3D12Resource, a propriedade DisableTensorCpuSync pode ser usada para impedir a cópia da saída de GPU/NPU de volta para um tensor de CPU. Por padrão, a chamada à API LearningModelSession.Evaluate é uma chamada de bloqueio e garantirá que os resultados de inferência estejam disponíveis na CPU após a conclusão. Em determinados cenários de avaliação de GPU/NPU, é desejável manter os resultados de inferência na GPU/NPU; e copiar os resultados de volta para a CPU é desnecessário e mais lento. Para evitar essa cópia, habilite a propriedade DisableTensorCpuSync durante a associação. Essa propriedade entra em vigor somente ao associar um ITensor ou seus tipos concretos (ou seja, TensorFloat). Essa propriedade foi introduzida no Windows 11, versão 21H2 (10.0; Build 22000). |
PixelRange | PropertyType.Int32 | Ao associar uma entrada ou saída, a propriedade PixelRange especifica o intervalo de normalização pretendido pelo autor do modelo para um valor de recurso específico. Quando os metadados Image.NominalPixelRange estão ausentes dos metadados image do modelo ONNX, eles podem ser especificados em runtime usando essa propriedade. As imagens associadas serão convertidas automaticamente no intervalo normalizado especificado para consumo pelo modelo. O PixelRange deve ser especificado como um valor Int32 correspondente aos valores na enumeração Windows.AI.MachineLearning.LearningModelPixelRange . Essa propriedade entra em vigor somente ao associar um ImageFeatureValue. |
Windows Server
Para usar essa API no Windows Server, você deve usar o Windows Server 2019 com a Experiência desktop.
Acesso thread-safe
Essa API é thread-safe.