LearningModelBinding.Bind Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
Bind(String, Object) |
Enlace un valor a la característica con nombre. |
Bind(String, Object, IPropertySet) |
Enlace un valor a la característica con nombre mediante propiedades para controlar el enlace. |
Bind(String, Object)
Enlace un valor a la característica con nombre.
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
Nombre de la característica.
- value
-
Object
Platform::Object
IInspectable
Valor que se va a enlazar.
- Atributos
Ejemplos
En el ejemplo siguiente se recuperan las primeras características de entrada y salida, se crea un marco de salida, se enlazan las características de entrada y salida y se evaulan.
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;
}
}
Comentarios
Windows Server
Para usar esta API en Windows Server, debe usar Windows Server 2019 con experiencia de escritorio.
Seguridad para subprocesos
Esta API es segura para subprocesos.
Se aplica a
Bind(String, Object, IPropertySet)
Enlace un valor a la característica con nombre mediante propiedades para controlar el enlace.
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
Nombre de la característica a la que se va a enlazar.
- value
-
Object
Platform::Object
IInspectable
Valor que se va a enlazar a la característica.
- props
- IPropertySet
Mapa de propiedades con pares clave-valor que describen el comportamiento de tensorización y detensorización del enlace. Para obtener más información, consulte la sección Comentarios .
- Atributos
Comentarios
Estos son los pares clave-valor válidos para el parámetro props :
Nombre | Value | Descripción |
---|---|---|
BitmapBounds | PropertyType.UInt32Array | Al enlazar una entrada, la propiedad BitmapBounds especifica los límites de recorte. La imagen recortada se extraerá y usará como entrada para realizar la inferencia. Al enlazar una salida, la propiedad BitmapBounds especifica los límites de una región de salida de destino. El resultado de la inferencia se escribirá en la región de salida de destino dentro de la imagen enlazada. La propiedad BitmapBounds se especifica como una matriz UInt32 con los valores [left, top, width, height] . Esta propiedad solo surte efecto cuando se enlaza imageFeatureValue. |
BitmapPixelFormat | PropertyType.Int32 | Al enlazar una entrada o salida, la propiedad BitmapPixelFormat especifica el formato de píxel previsto por el autor del modelo para un valor de característica determinado. Cuando faltan los metadatos image.BitmapPixelFormat del metadato de imagen del modelo ONNX, se puede especificar en tiempo de ejecución mediante esta propiedad. Las imágenes enlazadas se convertirán automáticamente en el formato de píxel especificado para su consumo por parte del modelo. BitmapPixelFormat debe especificarse como un valor Int32 correspondiente a los valores de la enumeración Windows.Graphics.Imaging.BitmapPixelFormat . Actualmente se admiten los siguientes valores:
|
DisableTensorCpuSync | PropertyType.Boolean | Al enlazar un tensor de salida respaldado por un ID3D12Resource, la propiedad DisableTensorCpuSync se puede usar para evitar copiar la salida de GPU/NPU de nuevo en un tensor de CPU. De forma predeterminada, la llamada API LearningModelSession.Evaluate es una llamada de bloqueo y garantizará que los resultados de la inferencia estén disponibles en la CPU después de la finalización. En determinados escenarios de evaluación de GPU/NPU, es conveniente mantener los resultados de inferencia en la GPU/NPU; y volver a copiar los resultados en la CPU es innecesario y más lento. Para evitar esa copia, habilite la propiedad DisableTensorCpuSync durante el enlace. Esta propiedad solo surte efecto cuando se enlaza un ITensor o sus tipos concretos (es decir, TensorFloat). Esta propiedad se introdujo en Windows 11, versión 21H2 (10.0; Compilación 22000). |
PixelRange | PropertyType.Int32 | Al enlazar una entrada o salida, la propiedad PixelRange especifica el intervalo de normalización previsto por el autor del modelo para un valor de característica determinado. Cuando faltan los metadatos image.NominalPixelRange del metadato de imagen del modelo ONNX, se puede especificar en tiempo de ejecución mediante esta propiedad. Las imágenes enlazadas se convertirán automáticamente en el intervalo normalizado especificado para su consumo por parte del modelo. PixelRange debe especificarse como un valor Int32 correspondiente a los valores de la enumeración Windows.AI.MachineLearning.LearningModelPixelRange . Esta propiedad solo surte efecto cuando se enlaza imageFeatureValue. |
Windows Server
Para usar esta API en Windows Server, debe usar Windows Server 2019 con experiencia de escritorio.
Seguridad para subprocesos
Esta API es segura para subprocesos.