Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Resamples elementos del origen al tensor de destino, mediante los factores de escala para calcular el tamaño del tensor de destino. Puede usar un modo de interpolación de vecinos lineal o 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 por lotes. La relación entre las coordenadas de entrada y salida es la siguiente:
OutputTensorX = (InputTensorX + InputPixelOffset) * Scale + OutputPixelOffset
Importante
Esta API está disponible como parte del paquete redistribuible independiente de DirectML (consulte Microsoft.AI.DirectML versión 1.9 y posteriores). Consulte también historial de versiones de DirectML.
Sintaxis
struct DML_RESAMPLE2_OPERATOR_DESC
{
const DML_TENSOR_DESC* InputTensor;
const DML_TENSOR_DESC* OutputTensor;
DML_INTERPOLATION_MODE InterpolationMode;
DML_AXIS_DIRECTION RoundingDirection;
UINT DimensionCount;
_Field_size_(DimensionCount) const FLOAT* Scales;
_Field_size_(DimensionCount) const FLOAT* InputPixelOffsets;
_Field_size_(DimensionCount) 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 desplazamiento de píxel correspondiente para cada elemento de salida.
DML_INTERPOLATION_MODE_LINEAR. Usa el algoritmo de interpolación lineal , que calcula el elemento de salida calculando el promedio ponderado de los dos elementos de entrada vecinos más cercanos por dimensión. El muestreo se admite hasta cuatro dimensiones (quadrilinear), donde el promedio ponderado se calcula en un total de dieciséis elementos de entrada para cada elemento de salida.
RoundingDirection
Tipo: DML_AXIS_DIRECTION
Dirección que se redondea a lo largo de cada eje cuando se asignan coordenadas fraccionarios a píxeles de entrada. Dado que la interpolación bilineal interpola coordenadas fraccionarios de todos modos, esto afecta solo a DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR.
DML_AXIS_DIRECTION_INCREASING. Coordenadas fraccionales redondas hacia el aumento de los valores del eje (ceil).
DML_AXIS_DIRECTION_DECREASING. Coordenadas fraccionales redondas hacia valores de eje decrecientes (piso).
DimensionCount
Tipo: UINT
Número de elementos de las matrices 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 se escala > 1 escala verticalmente la imagen y se escala < 1 reducir verticalmente 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 aplicarán 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 aplicarán 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.
Observaciones
Este operador es equivalente a DML_RESAMPLE1_OPERATOR_DESC cuando InterpolationMode está establecido en DML_INTERPOLATION_MODE_LINEAR; o cuando InterpolationMode se establece en DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR y RoundingDirection en DML_AXIS_DIRECTION_DECREASING, y OutputPixelOffsets se ajustan un -0,5 adicional.
Disponibilidad
Este operador se introdujo en DML_FEATURE_LEVEL_5_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 | Variante | Recuentos de dimensiones admitidos | Supported data types (Tipos de datos admitidos) |
|---|---|---|---|
| InputTensor | Entrada | De 1 a 4 | FLOAT32, FLOAT16, INT8, UINT8 |
| OutputTensor | Salida | De 1 a 4 | FLOAT32, FLOAT16, INT8, UINT8 |
DML_FEATURE_LEVEL_5_1 y versiones posteriores
| Tensor | Variante | Recuentos de dimensiones admitidos | Supported data types (Tipos de datos admitidos) |
|---|---|---|---|
| InputTensor | Entrada | De 1 a 4 | FLOAT32, FLOAT16 |
| OutputTensor | Salida | De 1 a 4 | FLOAT32, FLOAT16 |
Requisitos
| Encabezado | directml.h |