Condividi tramite


struttura DML_RESAMPLE1_OPERATOR_DESC (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. La relazione tra le coordinate di input e output è la seguente.

OutputTensorX = (InputTensorX + InputPixelOffset) * Scale + OutputPixelOffset

Sintassi

struct DML_RESAMPLE1_OPERATOR_DESC {
  const DML_TENSOR_DESC  *InputTensor;
  const DML_TENSOR_DESC  *OutputTensor;
  DML_INTERPOLATION_MODE InterpolationMode;
  UINT                   DimensionCount;
  const FLOAT            *Scales;
  const FLOAT            *InputPixelOffsets;
  const FLOAT            *OutputPixelOffsets;
};

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.

DimensionCount

Tipo: UINT

Numero di valori nelle matrici a cui si punta Scales, InputPixelOffsets e OutputPixelOffsets . Questo valore deve corrispondere al conteggio delle dimensioni di InputTensor e OutputTensor.

Scales

Tipo: _Field_size_(DimensionCount) 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.

InputPixelOffsets

Tipo: _Field_size_(DimensionCount) const FLOAT*

Offset da applicare ai pixel di input prima del ricampionamento. Quando questo valore è 0, l'angolo superiore sinistro del pixel viene usato anziché il relativo centro, che in genere non darà il risultato previsto. Per ripristinare l'immagine usando il centro dei pixel e ottenere lo stesso comportamento di DML_RESAMPLE_OPERATOR_DESC, questo valore deve essere 0.5.

OutputPixelOffsets

Tipo: _Field_size_(DimensionCount) const FLOAT*

Offset da applicare ai pixel di output dopo il ricampionamento. Quando questo valore è 0, l'angolo superiore sinistro del pixel viene usato anziché il relativo centro, che in genere non darà il risultato previsto. Per ripristinare l'immagine usando il centro dei pixel e ottenere lo stesso comportamento di DML_RESAMPLE_OPERATOR_DESC, questo valore deve essere -0.5.

Commenti

Quando i set InputPixelOffset sono impostati su 0,5 e outputPixelOffsets sono impostati su -0,5, questo operatore equivale a DML_RESAMPLE_OPERATOR_DESC.

Disponibilità

Questo operatore è stato introdotto in DML_FEATURE_LEVEL_2_1.

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_1 e versioni successive

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

Requisiti

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