structure DML_ROI_ALIGN_OPERATOR_DESC (directml.h)
Effectue une opération d’alignement du retour sur investissement, comme décrit dans le document Mask R-CNN . En résumé, l’opération extrait les cultures du tenseur d’image d’entrée et les redimensionne à une taille de sortie commune spécifiée par les 2 dernières dimensions de OutputTensor à l’aide de l’InterpolationMode spécifié.
Syntaxe
struct DML_ROI_ALIGN_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *ROITensor;
const DML_TENSOR_DESC *BatchIndicesTensor;
const DML_TENSOR_DESC *OutputTensor;
DML_REDUCE_FUNCTION ReductionFunction;
DML_INTERPOLATION_MODE InterpolationMode;
FLOAT SpatialScaleX;
FLOAT SpatialScaleY;
FLOAT OutOfBoundsInputValue;
UINT MinimumSamplesPerOutput;
UINT MaximumSamplesPerOutput;
};
Membres
InputTensor
Type : const DML_TENSOR_DESC*
Tenseur contenant les données d’entrée avec des dimensions { BatchCount, ChannelCount, InputHeight, InputWidth }
.
ROITensor
Type : const DML_TENSOR_DESC*
Tenseur contenant les données de régions d’intérêt (ROI). Les dimensions autorisées de ROITensor
sont { NumROIs, 4 }
, { 1, NumROIs, 4 }
ou { 1, 1, NumROIs, 4 }
. Pour chaque retour sur investissement, les valeurs sont les coordonnées de ses coins supérieurs gauche et inférieur droit dans l’ordre [x1, y1, x2, y2]
.
BatchIndicesTensor
Type : const DML_TENSOR_DESC*
Tenseur contenant les index de lot à partir desquels extraire les ROI. Les dimensions autorisées de BatchIndicesTensor
sont { NumROIs }
, { 1, NumROIs }
, { 1, 1, NumROIs }
ou { 1, 1, 1, NumROIs }
. Chaque valeur est l’index d’un lot d’InputTensor. Le comportement n’est pas défini si les valeurs ne se trouvent pas dans la plage [0, BatchCount).
OutputTensor
Type : const DML_TENSOR_DESC*
Tenseur contenant les données de sortie. Les dimensions attendues de OutputTensor sont { NumROIs, ChannelCount, OutputHeight, OutputWidth }
.
ReductionFunction
Type : DML_REDUCE_FUNCTION
Fonction de réduction à utiliser lors de la réduction de tous les échantillons d’entrée qui contribuent à un élément de sortie (DML_REDUCE_FUNCTION_AVERAGE ou DML_REDUCE_FUNCTION_MAX). Le nombre d’exemples d’entrée à réduire est limité par MinimumSamplesPerOutput et MaximumSamplesPerOutput.
InterpolationMode
Type : DML_INTERPOLATION_MODE
Mode d’interpolation à utiliser lors du redimensionnement des régions.
- DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. Utilise l’algorithme Voisin le plus proche , qui choisit l’élément d’entrée le plus proche du centre de pixels correspondant pour chaque élément de sortie.
- DML_INTERPOLATION_MODE_LINEAR. Utilise l’algorithme bilinéaire , qui calcule l’élément de sortie en effectuant la moyenne pondérée des 2 éléments d’entrée voisins les plus proches par dimension. Étant donné que seules 2 dimensions sont redimensionnées, la moyenne pondérée est calculée sur un total de 4 éléments d’entrée pour chaque élément de sortie.
SpatialScaleX
Type : FLOAT
Composant X (ou largeur) du facteur de mise à l’échelle pour multiplier les coordonnées ROITensor par afin de les rendre proportionnelles à InputHeight et InputWidth. Par exemple, si ROITensor contient des coordonnées normalisées (valeurs dans la plage [0..1]), SpatialScaleX a généralement la même valeur que InputWidth.
SpatialScaleY
Type : FLOAT
Composant Y (ou height) du facteur de mise à l’échelle pour multiplier les coordonnées ROITensor par afin de les rendre proportionnelles à InputHeight et InputWidth. Par exemple, si ROITensor contient des coordonnées normalisées (valeurs dans la plage [0..1]), SpatialScaleY a généralement la même valeur que InputHeight.
OutOfBoundsInputValue
Type : FLOAT
Valeur à lire à partir d’InputTensor lorsque les ROIs sont en dehors des limites de InputTensor. Cela peut se produire lorsque les valeurs obtenues après la mise à l’échelle de ROITensor par SpatialScaleX et SpatialScaleY sont supérieures à InputWidth et InputHeight.
MinimumSamplesPerOutput
Type : UINT
Nombre minimal d’exemples d’entrée à utiliser pour chaque élément de sortie. L’opérateur calcule le nombre d’échantillons d’entrée en effectuant ScaledCropSize / OutputSize
, puis le serre sur MinimumSamplesPerOutput et MaximumSamplesPerOutput.
MaximumSamplesPerOutput
Type : UINT
Nombre maximal d’exemples d’entrée à utiliser pour chaque élément de sortie. L’opérateur calcule le nombre d’échantillons d’entrée en effectuant ScaledCropSize / OutputSize
, puis le serre sur MinimumSamplesPerOutput et MaximumSamplesPerOutput.
Disponibilité
Cet opérateur a été introduit dans DML_FEATURE_LEVEL_3_0
.
Contraintes tensoriels
InputTensor, OutputTensor et ROITensor doivent avoir le même DataType.
Prise en charge des tenseurs
DML_FEATURE_LEVEL_5_0 et versions ultérieures
Tenseur | Type | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|
InputTensor | Entrée | 4 | FLOAT32, FLOAT16 |
ROITensor | Entrée | 2 à 4 | FLOAT32, FLOAT16 |
BatchIndicesTensor | Entrée | 1 à 4 | UINT64, UINT32 |
OutputTensor | Output | 4 | FLOAT32, FLOAT16 |
DML_FEATURE_LEVEL_3_0 et versions ultérieures
Tenseur | Type | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|
InputTensor | Entrée | 4 | FLOAT32, FLOAT16 |
ROITensor | Entrée | 2 à 4 | FLOAT32, FLOAT16 |
BatchIndicesTensor | Entrée | 1 à 4 | UINT32 |
OutputTensor | Output | 4 | FLOAT32, FLOAT16 |
Spécifications
Client minimal pris en charge | Windows 10 Build 20348 |
Serveur minimal pris en charge | Windows 10 Build 20348 |
En-tête | directml.h |