LearningModelBinding.Bind Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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:
|
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.