DML_ROI_ALIGN_OPERATOR_DESC struttura (directml.h)

Esegue un'operazione di allineamento roi, come descritto nel documento Mask R-CNN . In riepilogo, l'operazione estrae le colture dal tensore dell'immagine di input e le ridimensiona in una dimensione di output comune specificata dall'ultima 2 dimensioni di OutputTensor usando l'InterpolationMode specificata.

Sintassi

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

Members

InputTensor

Tipo: const DML_TENSOR_DESC*

Tensore contenente i dati di input con dimensioni { BatchCount, ChannelCount, InputHeight, InputWidth }.

ROITensor

Tipo: const DML_TENSOR_DESC*

Tensore contenente le aree di interesse (ROI). Le dimensioni consentite di ROITensor sono { NumROIs, 4 }, { 1, NumROIs, 4 }o { 1, 1, NumROIs, 4 }. Per ogni ROI, i valori saranno le coordinate degli angoli in alto a sinistra e in basso a destra nell'ordine [x1, y1, x2, y2].

BatchIndicesTensor

Tipo: const DML_TENSOR_DESC*

Tensor contenente gli indici batch da cui estrarre le ROI. Le dimensioni consentite di BatchIndicesTensor sono { NumROIs }, , { 1, NumROIs }{ 1, 1, NumROIs }o { 1, 1, 1, NumROIs }. Ogni valore è l'indice di un batch da InputTensor. Il comportamento non è definito se i valori non si trovano nell'intervallo [0, BatchCount).

OutputTensor

Tipo: const DML_TENSOR_DESC*

Tensor contenente i dati di output. Le dimensioni previste di OutputTensor sono { NumROIs, ChannelCount, OutputHeight, OutputWidth }.

ReductionFunction

Tipo: DML_REDUCE_FUNCTION

Funzione di riduzione da usare quando si riduce in tutti gli esempi di input che contribuiscono a un elemento di output (DML_REDUCE_FUNCTION_AVERAGE o DML_REDUCE_FUNCTION_MAX). Il numero di esempi di input da ridurre è limitato da MinimumSamplesPerOutput e MaximumSamplesPerOutput.

InterpolationMode

Tipo: DML_INTERPOLATION_MODE

Modalità di interpolazione da usare quando si ridimensionano le aree.

  • DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. Usa l'algoritmo Nearest Neighbor, che sceglie l'elemento di input più vicino al centro pixel corrispondente per ogni elemento di output.
  • DML_INTERPOLATION_MODE_LINEAR. Usa l'algoritmo Bilinear , che calcola l'elemento di output eseguendo la media ponderata dei 2 elementi di input vicini più vicini per dimensione. Poiché vengono ridimensionate solo 2 dimensioni, la media ponderata viene calcolata su un totale di 4 elementi di input per ogni elemento di output.

SpatialScaleX

Tipo: FLOAT

Componente X (o larghezza) del fattore di ridimensionamento per moltiplicare le coordinate ROITensor per renderle proporzionali a InputHeight e InputWidth. Ad esempio, se ROITensor contiene coordinate normalizzate (valori nell'intervallo [0...1], SpatialScaleX in genere avrà lo stesso valore di InputWidth.

SpatialScaleY

Tipo: FLOAT

Componente Y (o altezza) del fattore di ridimensionamento per moltiplicare le coordinate ROITensor per renderle proporzionali a InputHeight e InputWidth. Ad esempio, se ROITensor contiene coordinate normalizzate (valori nell'intervallo [0...1]), SpatialScaleY in genere avrà lo stesso valore di InputHeight.

OutOfBoundsInputValue

Tipo: FLOAT

Valore da leggere da InputTensor quando le RO sono esterne ai limiti di InputTensor. Ciò può verificarsi quando i valori ottenuti dopo il ridimensionamento di ROITensor by SpatialScaleX e SpatialScaleY sono più grandi di InputWidth e InputHeight.

MinimumSamplesPerOutput

Tipo: UINT

Numero minimo di esempi di input da usare per ogni elemento di output. L'operatore calcola il numero di campioni di input eseguendo ScaledCropSize / OutputSizee quindi bloccandolo su MinimumSamplesPerOutput e MaximumSamplesPerOutput.

MaximumSamplesPerOutput

Tipo: UINT

Numero massimo di esempi di input da usare per ogni elemento di output. L'operatore calcola il numero di campioni di input eseguendo ScaledCropSize / OutputSizee quindi bloccandolo su MinimumSamplesPerOutput e MaximumSamplesPerOutput.

Disponibilità

Questo operatore è stato introdotto in DML_FEATURE_LEVEL_3_0.

Vincoli tensor

InputTensor, OutputTensor e ROITensor devono avere lo stesso tipo di dati.

Supporto di Tensor

DML_FEATURE_LEVEL_5_0 e versioni successive

Tensore Tipo Conteggi delle dimensioni supportate Tipi di dati supportati
InputTensor Input 4 FLOAT32, FLOAT16
ROITensor Input da 2 a 4 FLOAT32, FLOAT16
BatchIndicesTensor Input da 1 a 4 UINT64, UINT32
OutputTensor Output 4 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_3_0 e versioni successive

Tensore Tipo Conteggi delle dimensioni supportate Tipi di dati supportati
InputTensor Input 4 FLOAT32, FLOAT16
ROITensor Input da 2 a 4 FLOAT32, FLOAT16
BatchIndicesTensor Input da 1 a 4 UINT32
OutputTensor Output 4 FLOAT32, FLOAT16

Requisiti

   
Client minimo supportato Windows 10 Build 20348
Server minimo supportato Windows 10 Build 20348
Intestazione directml.h