Compartir a través de


estructura DML_RESAMPLE1_OPERATOR_DESC (directml.h)

Resamples elementos del tensor de origen al tensor de destino, utilizando los factores de escala para calcular el tamaño del tensor de destino. Puede usar un modo de interpolación lineal o vecino más cercano. El operador admite la interpolación entre varias dimensiones, no solo 2D. Por lo tanto, puede mantener el mismo tamaño espacial, pero interpolar entre canales o entre lotes. La relación entre las coordenadas de entrada y salida es la siguiente.

OutputTensorX = (InputTensorX + InputPixelOffset) * Scale + OutputPixelOffset

Sintaxis

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

Miembros

InputTensor

Tipo: const DML_TENSOR_DESC*

Tensor que contiene los datos de entrada.

OutputTensor

Tipo: const DML_TENSOR_DESC*

Tensor en el que se van a escribir los datos de salida.

InterpolationMode

Tipo: DML_INTERPOLATION_MODE

Este campo determina el tipo de interpolación que se usa para elegir píxeles de salida.

  • DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. Usa el algoritmo Vecino más cercano, que elige el elemento de entrada más cercano al centro de píxeles correspondiente para cada elemento de salida.

  • DML_INTERPOLATION_MODE_LINEAR. Usa el algoritmo de interpolación lineal , que calcula el elemento de salida calculando la media ponderada de los 2 elementos de entrada vecinos más cercanos por dimensión. El muestreo se admite hasta 4 dimensiones (cuadrilíneaar), donde el promedio ponderado se calcula en un total de 16 elementos de entrada para cada elemento de salida.

DimensionCount

Tipo: UINT

Número de valores de las matrices a las que apuntan Scales, InputPixelOffsets y OutputPixelOffsets . Este valor debe coincidir con el recuento de dimensiones de InputTensor y OutputTensor.

Scales

Tipo: _Field_size_(DimensionCount) const FLOAT*

Las escalas que se aplicarán al volver a muestrear la entrada, donde escala > 1 escale verticalmente la imagen y reduzca < verticalmente 1 la imagen para esa dimensión. Tenga en cuenta que las escalas no necesitan ser exactamente OutputSize / InputSize. Si la entrada después del escalado es mayor que el límite de salida, la recortamos al tamaño de salida. Por otro lado, si la entrada después del escalado es menor que el límite de salida, se fijan los bordes de salida.

InputPixelOffsets

Tipo: _Field_size_(DimensionCount) const FLOAT*

Desplazamientos que se van a aplicar a los píxeles de entrada antes de volver a muestrear. Cuando este valor es 0, se usa la esquina superior izquierda del píxel en lugar de su centro, que normalmente no dará el resultado esperado. Para volver a implementar la imagen mediante el centro de los píxeles y para obtener el mismo comportamiento que DML_RESAMPLE_OPERATOR_DESC, este valor debe ser 0.5.

OutputPixelOffsets

Tipo: _Field_size_(DimensionCount) const FLOAT*

Desplazamientos que se van a aplicar a los píxeles de salida después de volver a muestrear. Cuando este valor es 0, se usa la esquina superior izquierda del píxel en lugar de su centro, que normalmente no dará el resultado esperado. Para volver a implementar la imagen mediante el centro de los píxeles y para obtener el mismo comportamiento que DML_RESAMPLE_OPERATOR_DESC, este valor debe ser -0.5.

Comentarios

Cuando InputPixelOffsets se establece en 0,5 y OutputPixelOffsets se establece en -0,5, este operador equivale a DML_RESAMPLE_OPERATOR_DESC.

Disponibilidad

Este operador se introdujo en DML_FEATURE_LEVEL_2_1.

Restricciones tensor

InputTensor y OutputTensor deben tener el mismo DataType y DimensionCount.

Compatibilidad con Tensor

DML_FEATURE_LEVEL_6_2 y versiones posteriores

Tensor Clase Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada De 1 a 4 FLOAT32, FLOAT16, INT8, UINT8
OutputTensor Resultados De 1 a 4 FLOAT32, FLOAT16, INT8, UINT8

DML_FEATURE_LEVEL_5_1 y versiones posteriores

Tensor Clase Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada De 1 a 4 FLOAT32, FLOAT16
OutputTensor Resultados De 1 a 4 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_2_1 y versiones posteriores

Tensor Clase Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada 4 FLOAT32, FLOAT16
OutputTensor Resultados 4 FLOAT32, FLOAT16

Requisitos

Requisito Value
Cliente mínimo compatible compilación 20348 de Windows 10
Servidor mínimo compatible compilación 20348 de Windows 10
Encabezado directml.h