LearningModelBinding.Bind Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
Bind(String, Object) |
Binden Sie einen Wert an das benannte Feature. |
Bind(String, Object, IPropertySet) |
Binden Sie einen Wert an das benannte Feature mithilfe von Eigenschaften, um die Bindung zu steuern. |
Bind(String, Object)
Binden Sie einen Wert an das benannte Feature.
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)
Parameter
- name
-
String
Platform::String
winrt::hstring
Der Name der Funktion.
- value
-
Object
Platform::Object
IInspectable
Der zu bindende Wert.
- Attribute
Beispiele
Im folgenden Beispiel werden die ersten Eingabe- und Ausgabefeatures abgerufen, ein Ausgabeframe erstellt, die Eingabe- und Ausgabefeatures gebunden und evakuiert.
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;
}
}
Hinweise
Windows Server
Um diese API unter Windows Server verwenden zu können, müssen Sie Windows Server 2019 mit Desktopdarstellung verwenden.
Threadsicherheit
Diese API ist threadsicher.
Gilt für:
Bind(String, Object, IPropertySet)
Binden Sie einen Wert an das benannte Feature mithilfe von Eigenschaften, um die Bindung zu steuern.
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)
Parameter
- name
-
String
Platform::String
winrt::hstring
Der Name des Features, an das gebunden werden soll.
- value
-
Object
Platform::Object
IInspectable
Der Wert, der an das Feature gebunden werden soll.
- props
- IPropertySet
Eine Eigenschaftenzuordnung mit Schlüssel-Wert-Paaren, die das Tensorisierungs- und Detensorisierungsverhalten der Bindung beschreiben. Weitere Informationen finden Sie im Abschnitt Hinweise .
- Attribute
Hinweise
Dies sind die gültigen Schlüssel-Wert-Paare für den props-Parameter :
Name | Wert | BESCHREIBUNG |
---|---|---|
BitmapBounds | PropertyType.UInt32Array | Beim Binden einer Eingabe gibt die BitmapBounds-Eigenschaft Zuschneidegrenzen an. Das zugeschnittene Bild wird extrahiert und als Eingabe für die Durchführung von Rückschlüssen verwendet. Beim Binden einer Ausgabe gibt die BitmapBounds-Eigenschaft Grenzen für einen Zielausgabebereich an. Das Ergebnis des Rückschlusses wird in den Zielausgabebereich innerhalb des gebundenen Bilds geschrieben. Die BitmapBounds-Eigenschaft wird als UInt32-Array mit den Werten [left, top, width, height] angegeben. Diese Eigenschaft wird nur wirksam, wenn ein ImageFeatureValue gebunden wird. |
BitmapPixelFormat | PropertyType.Int32 | Beim Binden einer Eingabe oder Ausgabe gibt die BitmapPixelFormat-Eigenschaft das Pixelformat an, das vom Modellautor für einen bestimmten Featurewert vorgesehen ist. Wenn die Image.BitmapPixelFormat-Metadaten in den Bildmetadaten des ONNX-Modells fehlen, kann sie zur Laufzeit mithilfe dieser Eigenschaft angegeben werden. Gebundene Bilder werden automatisch in das angegebene Pixelformat konvertiert, um sie vom Modell zu verwenden. BitmapPixelFormat muss als Int32-Wert angegeben werden, der den Werten in der Windows.Graphics.Imaging.BitmapPixelFormat-Enumeration entspricht. Derzeit werden die folgenden Werte unterstützt:
|
DisableTensorCpuSync | PropertyType.Boolean | Beim Binden eines Ausgabe tensors, der von einer ID3D12Resource unterstützt wird, kann die DisableTensorCpuSync-Eigenschaft verwendet werden, um das Kopieren der GPU/NPU-Ausgabe zurück in einen CPU-Tensor zu verhindern. Standardmäßig ist der API-Aufruf LearningModelSession.Evaluate ein blockierende Aufruf und stellt sicher, dass Rückschlussergebnisse nach abschluss auf der CPU verfügbar sind. In bestimmten GPU-/NPU-Auswertungsszenarien ist es wünschenswert, Rückschlussergebnisse für die GPU/NPU beizubehalten. und das Kopieren der Ergebnisse zurück in die CPU ist unnötig und langsamer. Um diese Kopie zu vermeiden, aktivieren Sie die DisableTensorCpuSync-Eigenschaft während der Bindung. Diese Eigenschaft wird nur wirksam, wenn ein ITensor oder seine konkreten Typen (also TensorFloat) gebunden werden. Diese Eigenschaft wurde in Windows 11, Version 21H2 (10.0; Build 22000). |
PixelRange | PropertyType.Int32 | Beim Binden einer Eingabe oder Ausgabe gibt die PixelRange-Eigenschaft den Normalisierungsbereich an, der vom Modellautor für einen bestimmten Featurewert vorgesehen ist. Wenn die Image.NominalPixelRange-Metadaten in den Bildmetadaten des ONNX-Modells fehlen, kann sie zur Laufzeit mithilfe dieser Eigenschaft angegeben werden. Gebundene Bilder werden automatisch in den angegebenen normalisierten Bereich für die Nutzung durch das Modell konvertiert. PixelRange muss als Int32-Wert angegeben werden, der den Werten in der Windows.AI.MachineLearning.LearningModelPixelRange-Enumeration entspricht. Diese Eigenschaft wird nur wirksam, wenn ein ImageFeatureValue gebunden wird. |
Windows Server
Um diese API unter Windows Server verwenden zu können, müssen Sie Windows Server 2019 mit Desktopdarstellung verwenden.
Threadsicherheit
Diese API ist threadsicher.