estructura DML_RESAMPLE_OPERATOR_DESC (directml.h)
Resamples elementos del 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 por lotes.
Sintaxis
struct DML_RESAMPLE_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *OutputTensor;
DML_INTERPOLATION_MODE InterpolationMode;
UINT ScaleCount;
const FLOAT *Scales;
};
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 el promedio ponderado 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.
ScaleCount
Tipo: UINT
El número de valores de la matriz Scales
apunta a. Este valor debe coincidir con el recuento de dimensiones de InputTensor y OutputTensor.
Scales
Tipo: _Field_size_(ScaleCount) const FLOAT*
Las escalas que se aplicarán al volver a muestrear la entrada, donde escala > 1 escale verticalmente la imagen y < escale 1 y reduzca 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 de escalar es menor que el límite de salida, se fijan los bordes de salida.
Comentarios
Se introdujo una versión más reciente de este operador, DML_RESAMPLE1_OPERATOR_DESC, en DML_FEATURE_LEVEL_2_1
.
Disponibilidad
Este operador se introdujo en DML_FEATURE_LEVEL_2_0
.
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_0 y versiones posteriores
Tensor | Clase | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|
InputTensor | Entrada | 4 | FLOAT32, FLOAT16 |
OutputTensor | Resultados | 4 | FLOAT32, FLOAT16 |
Requisitos
Cliente mínimo compatible | Windows 10, versión 2004 (10.0; Compilación 19041) |
Servidor mínimo compatible | Windows Server, versión 2004 (10.0; Compilación 19041) |
Encabezado | directml.h |