Bagikan melalui


LearningModelBinding.Bind Metode

Definisi

Overload

Bind(String, Object)

Ikat nilai ke fitur bernama.

Bind(String, Object, IPropertySet)

Ikat nilai ke fitur bernama menggunakan properti untuk mengontrol pengikatan.

Bind(String, Object)

Ikat nilai ke fitur bernama.

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

Nama fitur.

value
Object

Platform::Object

IInspectable

Nilai yang akan diikat.

Atribut

Contoh

Contoh berikut mengambil fitur input dan output pertama, membuat bingkai output, mengikat fitur input dan output, dan mengevakuasi.

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;
    }
}

Keterangan

Windows Server

Untuk menggunakan API ini di Windows Server, Anda harus menggunakan Windows Server 2019 dengan Pengalaman Desktop.

Keamanan utas

API ini aman untuk utas.

Berlaku untuk

Bind(String, Object, IPropertySet)

Ikat nilai ke fitur bernama menggunakan properti untuk mengontrol pengikatan.

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

Nama fitur yang akan diikat.

value
Object

Platform::Object

IInspectable

Nilai untuk mengikat fitur.

props
IPropertySet

Peta properti dengan pasangan kunci-nilai yang menjelaskan perilaku tensorisasi dan detensorisasi pengikatan. Untuk detail selengkapnya, lihat bagian Keterangan .

Atribut

Keterangan

Ini adalah pasangan kunci-nilai yang valid untuk parameter props :

Nama Nilai Deskripsi
BitmapBounds PropertyType.UInt32Array Saat mengikat input, properti BitmapBounds menentukan batas pemotongan. Gambar yang dipangkas akan diekstrak dan digunakan sebagai input untuk melakukan inferensi.

Saat mengikat output, properti BitmapBounds menentukan batas untuk wilayah output target. Hasil inferensi akan ditulis ke wilayah output target dalam gambar terikat.

Properti BitmapBounds ditentukan sebagai array UInt32 dengan nilai [left, top, width, height].

Properti ini hanya berlaku saat mengikat ImageFeatureValue.
BitmapPixelFormat PropertyType.Int32 Saat mengikat input atau output, properti BitmapPixelFormat menentukan format piksel yang dimaksudkan oleh pembuat model untuk nilai fitur tertentu. Ketika metadata Image.BitmapPixelFormat hilang dari metadata Gambar model ONNX, metadata gambar dapat ditentukan saat runtime dengan menggunakan properti ini. Gambar terikat akan secara otomatis dikonversi ke format piksel yang ditentukan untuk dikonsumsi oleh model.

BitmapPixelFormat harus ditentukan sebagai nilai Int32 yang terkait dengan nilai dalam enumerasi Windows.Graphics.Imaging.BitmapPixelFormat . Saat ini nilai berikut didukung:
  • BitmapPixelFormat.Rgba8
  • BitmapPixelFormat.Bgra8
  • BitmapPixelFormat.Gray8
Properti ini hanya berlaku saat mengikat ImageFeatureValue.
DisableTensorCpuSync PropertyType.Boolean Saat mengikat tensor output yang didukung oleh ID3D12Resource, properti DisableTensorCpuSync dapat digunakan untuk mencegah penyalinan output GPU/NPU kembali ke tensor CPU. Secara default, panggilan LEARNINGModelSession.Evaluate API adalah panggilan pemblokiran, dan akan memastikan bahwa hasil inferensi tersedia pada CPU pasca-penyelesaian.

Dalam skenario evaluasi GPU/NPU tertentu, diinginkan untuk menyimpan hasil inferensi pada GPU/NPU; dan menyalin hasilnya kembali ke CPU tidak perlu dan lebih lambat. Untuk menghindari penyalinan tersebut, aktifkan properti DisableTensorCpuSync selama pengikatan.

Properti ini hanya berlaku ketika mengikat ITensor atau jenis betonnya (yaitu TensorFloat).

Properti ini diperkenalkan dalam Windows 11, versi 21H2 (10.0; Bangun 22000).
PixelRange PropertyType.Int32 Saat mengikat input atau output, properti PixelRange menentukan rentang normalisasi yang dimaksudkan oleh pembuat model untuk nilai fitur tertentu. Ketika metadata Image.NominalPixelRange hilang dari metadata Gambar model ONNX, metadata gambar dapat ditentukan saat runtime dengan menggunakan properti ini. Gambar terikat akan secara otomatis dikonversi ke rentang yang dinormalisasi yang ditentukan untuk dikonsumsi oleh model.

PixelRange harus ditentukan sebagai nilai Int32 yang sesuai dengan nilai dalam enumerasi Windows.AI.MachineLearning.LearningModelPixelRange .

Properti ini hanya berlaku saat mengikat ImageFeatureValue.

Windows Server

Untuk menggunakan API ini di Windows Server, Anda harus menggunakan Windows Server 2019 dengan Pengalaman Desktop.

Keamanan utas

API ini aman untuk utas.

Berlaku untuk