LearningModelBinding.Bind Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
Bind(String, Object) |
Lier une valeur à la fonctionnalité nommée. |
Bind(String, Object, IPropertySet) |
Liez une valeur à la fonctionnalité nommée à l’aide de propriétés pour contrôler la liaison. |
Bind(String, Object)
Lier une valeur à la fonctionnalité nommée.
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)
Paramètres
- name
-
String
Platform::String
winrt::hstring
Nom de la fonctionnalité.
- value
-
Object
Platform::Object
IInspectable
Valeur à lier.
- Attributs
Exemples
L’exemple suivant récupère les premières fonctionnalités d’entrée et de sortie, crée une trame de sortie, lie les fonctionnalités d’entrée et de sortie, puis s’évaulate.
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;
}
}
Remarques
Windows Server
Pour utiliser cette API sur Windows Server, vous devez utiliser Windows Server 2019 avec Expérience utilisateur.
Sécurité des threads
Cette API est thread-safe.
S’applique à
Bind(String, Object, IPropertySet)
Liez une valeur à la fonctionnalité nommée à l’aide de propriétés pour contrôler la liaison.
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)
Paramètres
- name
-
String
Platform::String
winrt::hstring
Nom de la fonctionnalité à lier.
- value
-
Object
Platform::Object
IInspectable
Valeur à lier à la fonctionnalité.
- props
- IPropertySet
Mappage de propriétés avec des paires clé-valeur décrivant le comportement de tensorisation et de détensorisation de la liaison. Pour plus d’informations, consultez la section Remarques .
- Attributs
Remarques
Voici les paires clé-valeur valides pour le paramètre props :
Nom | Valeur | Description |
---|---|---|
BitmapBounds | PropertyType.UInt32Array | Lors de la liaison d’une entrée, la propriété BitmapBounds spécifie les limites de rognage. L’image rognée est extraite et utilisée comme entrée pour effectuer l’inférence. Lors de la liaison d’une sortie, la propriété BitmapBounds spécifie les limites d’une région de sortie cible. Le résultat de l’inférence est écrit dans la région de sortie cible dans l’image liée. La propriété BitmapBounds est spécifiée en tant que tableau UInt32 avec les valeurs [left, top, width, height] . Cette propriété prend effet uniquement lors de la liaison d’un Objet ImageFeatureValue. |
BitmapPixelFormat | PropertyType.Int32 | Lors de la liaison d’une entrée ou d’une sortie, la propriété BitmapPixelFormat spécifie le format de pixel prévu par l’auteur du modèle pour une valeur de fonctionnalité particulière. Lorsque les métadonnées Image.BitmapPixelFormat sont manquantes dans les métadonnées Image du modèle ONNX, elles peuvent être spécifiées au moment de l’exécution à l’aide de cette propriété. Les images liées sont automatiquement converties au format de pixel spécifié pour être consommées par le modèle. BitmapPixelFormat doit être spécifié en tant que valeur Int32 correspondant aux valeurs de l’énumération Windows.Graphics.Imaging.BitmapPixelFormat . Actuellement, les valeurs suivantes sont prises en charge :
|
DisableTensorCpuSync | PropertyType.Boolean | Lors de la liaison d’un tenseur de sortie soutenu par un ID3D12Resource, la propriété DisableTensorCpuSync peut être utilisée pour empêcher la copie de la sortie GPU/NPU vers un tenseur de processeur. Par défaut, l’appel d’API LearningModelSession.Evaluate est un appel bloquant et garantit que les résultats de l’inférence sont disponibles sur la post-achèvement du processeur. Dans certains scénarios d’évaluation GPU/NPU, il est souhaitable de conserver les résultats de l’inférence sur le GPU/NPU ; et la copie des résultats dans le processeur est inutile et plus lente. Pour éviter cette copie, activez la propriété DisableTensorCpuSync pendant la liaison. Cette propriété prend effet uniquement lors de la liaison d’un ITensor ou de ses types concrets (autrement dit, TensorFloat). Cette propriété a été introduite dans Windows 11, version 21H2 (10.0 ; Build 22000). |
PixelRange | PropertyType.Int32 | Lors de la liaison d’une entrée ou d’une sortie, la propriété PixelRange spécifie la plage de normalisation prévue par l’auteur du modèle pour une valeur de fonctionnalité particulière. Lorsque les métadonnées Image.NominalPixelRange sont manquantes dans les métadonnées Image du modèle ONNX, elles peuvent être spécifiées au moment de l’exécution à l’aide de cette propriété. Les images liées sont automatiquement converties dans la plage normalisée spécifiée pour être consommées par le modèle. Le PixelRange doit être spécifié en tant que valeur Int32 correspondant aux valeurs de l’énumération Windows.AI.MachineLearning.LearningModelPixelRange . Cette propriété prend effet uniquement lors de la liaison d’un Objet ImageFeatureValue. |
Windows Server
Pour utiliser cette API sur Windows Server, vous devez utiliser Windows Server 2019 avec Expérience utilisateur.
Sécurité des threads
Cette API est thread-safe.