Condividi tramite


DML_RESAMPLE_OPERATOR_DESC struttura (directml.h)

Rimplifica gli elementi dall'origine al tensore di destinazione, usando i fattori di scala per calcolare le dimensioni del tensore di destinazione. È possibile usare una modalità di interpolazione lineare o vicina più vicina. L'operatore supporta l'interpolazione tra più dimensioni, non solo 2D. È quindi possibile mantenere la stessa dimensione spaziale, ma interpolare tra canali o in batch.

Sintassi

struct DML_RESAMPLE_OPERATOR_DESC {
  const DML_TENSOR_DESC  *InputTensor;
  const DML_TENSOR_DESC  *OutputTensor;
  DML_INTERPOLATION_MODE InterpolationMode;
  UINT                   ScaleCount;
  const FLOAT            *Scales;
};

Members

InputTensor

Tipo: const DML_TENSOR_DESC*

Tensore contenente i dati di input.

OutputTensor

Tipo: const DML_TENSOR_DESC*

Tensor in cui scrivere i dati di output.

InterpolationMode

Tipo: DML_INTERPOLATION_MODE

Questo campo determina il tipo di interpolazione utilizzata per scegliere i pixel di output.

  • 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 di interpolazione lineare , che calcola l'elemento di output calcolando la media ponderata dei 2 elementi di input vicini più vicini per dimensione. Il rimpling è supportato fino a 4 dimensioni (quadrilinea), dove la media ponderata viene calcolata su un totale di 16 elementi di input per ogni elemento di output.

ScaleCount

Tipo: UINT

Numero di valori nella matrice Scales a cui punta. Questo valore deve corrispondere al conteggio delle dimensioni di InputTensor e OutputTensor.

Scales

Tipo: _Field_size_(ScaleCount) const FLOAT*

Le scalabilità da applicare quando si esegue il ricampionamento dell'input, in cui la > scala 1 aumenta l'immagine e < ridimensiona l'immagine verso il basso per tale dimensione. Si noti che le scale non devono essere esattamente OutputSize / InputSize. Se l'input dopo il ridimensionamento è maggiore del limite di output, verrà ritagliato alla dimensione di output. D'altra parte, se l'input dopo il ridimensionamento è minore del limite di output, i bordi di output vengono bloccati.

Commenti

Una versione più recente di questo operatore, DML_RESAMPLE1_OPERATOR_DESC, è stata introdotta in DML_FEATURE_LEVEL_2_1.

Disponibilità

Questo operatore è stato introdotto in DML_FEATURE_LEVEL_2_0.

Vincoli tensor

InputTensor e OutputTensor devono avere lo stesso Oggetto DataType e DimensionCount.

Supporto di Tensor

DML_FEATURE_LEVEL_6_2 e versioni successive

Tensore Tipo Conteggi delle dimensioni supportate Tipi di dati supportati
InputTensor Input da 1 a 4 FLOAT32, FLOAT16, INT8, UINT8
OutputTensor Output da 1 a 4 FLOAT32, FLOAT16, INT8, UINT8

DML_FEATURE_LEVEL_5_1 e versioni successive

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

DML_FEATURE_LEVEL_2_0 e versioni successive

Tensore Tipo Conteggi delle dimensioni supportate Tipi di dati supportati
InputTensor Input 4 FLOAT32, FLOAT16
OutputTensor Output 4 FLOAT32, FLOAT16

Requisiti

   
Client minimo supportato Windows 10 versione 2004 (10.0; Build 19041)
Server minimo supportato Windows Server, versione 2004 (10.0; Build 19041)
Intestazione directml.h