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 |