LearningModelBinding.Bind Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
Bind(String, Object) |
Associare un valore alla funzionalità denominata. |
Bind(String, Object, IPropertySet) |
Associare un valore alla funzionalità denominata usando le proprietà per controllare l'associazione. |
Bind(String, Object)
Associare un valore alla funzionalità denominata.
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)
Parametri
- name
-
String
Platform::String
winrt::hstring
Nome della funzionalità.
- value
-
Object
Platform::Object
IInspectable
Valore da associare.
- Attributi
Esempio
Nell'esempio seguente vengono recuperate le prime funzionalità di input e output, viene creato un frame di output, vengono associate le funzionalità di input e output ed evase.
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;
}
}
Commenti
Windows Server
Per usare questa API in Windows Server, è necessario usare Windows Server 2019 con Esperienza desktop.
Thread safety
Questa API è thread-safe.
Si applica a
Bind(String, Object, IPropertySet)
Associare un valore alla funzionalità denominata usando le proprietà per controllare l'associazione.
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)
Parametri
- name
-
String
Platform::String
winrt::hstring
Nome della funzionalità a cui eseguire l'associazione.
- value
-
Object
Platform::Object
IInspectable
Valore da associare alla funzionalità.
- props
- IPropertySet
Mappa delle proprietà con coppie chiave-valore che descrivono il comportamento di tensorizzazione e detensorizzazione dell'associazione. Per altri dettagli, vedere la sezione Osservazioni .
- Attributi
Commenti
Queste sono le coppie chiave-valore valide per il parametro props :
Nome | Valore | Descrizione |
---|---|---|
BitmapBounds | PropertyType.UInt32Array | Quando si associa un input, la proprietà BitmapBounds specifica i limiti di ritaglio. L'immagine ritagliata verrà estratta e usata come input per l'esecuzione dell'inferenza. Quando si associa un output, la proprietà BitmapBounds specifica i limiti per un'area di output di destinazione. Il risultato dell'inferenza verrà scritto nell'area di output di destinazione all'interno dell'immagine associata. La proprietà BitmapBounds viene specificata come matrice UInt32 con i valori [left, top, width, height] . Questa proprietà ha effetto solo quando si associa un oggetto ImageFeatureValue. |
BitmapPixelFormat | PropertyType.Int32 | Quando si associa un input o un output, la proprietà BitmapPixelFormat specifica il formato pixel previsto dall'autore del modello per un determinato valore di funzionalità. Quando i metadati Image.BitmapPixelFormat non sono presenti nei metadati Image del modello ONNX, è possibile specificarlo in fase di esecuzione usando questa proprietà. Le immagini associate verranno convertite automaticamente nel formato pixel specificato per l'utilizzo da parte del modello. BitmapPixelFormat deve essere specificato come valore Int32 corrispondente ai valori nell'enumerazione Windows.Graphics.Imaging.BitmapPixelFormat . Attualmente sono supportati i valori seguenti:
|
DisableTensorCpuSync | PropertyType.Boolean | Quando si associa un tensore di output supportato da un ID3D12Resource, è possibile usare la proprietà DisableTensorCpuSync per impedire la copia dell'output GPU/NPU in un tensore della CPU. Per impostazione predefinita, la chiamata API LearningModelSession.Evaluate è una chiamata di blocco e garantisce che i risultati dell'inferenza siano disponibili dopo il completamento della CPU. In alcuni scenari di valutazione GPU/NPU, è consigliabile mantenere i risultati di inferenza nella GPU/NPU; e la copia dei risultati nella CPU non è necessaria e più lenta. Per evitare tale copia, abilitare la proprietà DisableTensorCpuSync durante l'associazione. Questa proprietà viene applicata solo quando si associa un ITensor o i relativi tipi concreti, ovvero TensorFloat. Questa proprietà è stata introdotta in Windows 11 versione 21H2 (10.0; Build 22000). |
PixelRange | PropertyType.Int32 | Quando si associa un input o un output, la proprietà PixelRange specifica l'intervallo di normalizzazione previsto dall'autore del modello per un determinato valore di funzionalità. Quando i metadati Image.NominalPixelRange non sono presenti nei metadati image del modello ONNX, è possibile specificarlo in fase di esecuzione usando questa proprietà. Le immagini associate verranno convertite automaticamente nell'intervallo normalizzato specificato per l'utilizzo da parte del modello. PixelRange deve essere specificato come valore Int32 corrispondente ai valori nell'enumerazione Windows.AI.MachineLearning.LearningModelPixelRange . Questa proprietà ha effetto solo quando si associa un oggetto ImageFeatureValue. |
Windows Server
Per usare questa API in Windows Server, è necessario usare Windows Server 2019 con Esperienza desktop.
Thread safety
Questa API è thread-safe.