estructura DML_DEPTH_TO_SPACE1_OPERATOR_DESC (directml.h)
Reorganiza (permuta) los datos de profundidad en bloques de datos espaciales. El operador genera una copia del tensor de entrada donde los valores de la dimensión de profundidad se mueven en bloques espaciales a las dimensiones de alto y ancho.
Esta es la transformación inversa de DML_SPACE_TO_DEPTH1_OPERATOR_DESC.
Sintaxis
struct DML_DEPTH_TO_SPACE1_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT BlockSize;
DML_DEPTH_SPACE_ORDER Order;
};
Miembros
InputTensor
Tipo: const DML_TENSOR_DESC*
Tensor del que se va a leer. Las dimensiones del tensor de entrada son { BatchCount, InputChannelCount, InputHeight, InputWidth }
.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Tensor en el que se van a escribir los resultados. Las dimensiones del tensor de salida son { BatchCount, OutputChannelCount, OutputHeight, OutputWidth }
, donde:
- OutputChannelCount se calcula como InputChannelCount / (
BlockSize
*BlockSize
) - OutputHeight se calcula como InputHeight *
BlockSize
- OutputWidth se calcula como InputWidth *
BlockSize
BlockSize
Tipo: UINT
Ancho y alto de los bloques que se mueven.
Order
Tipo: DML_DEPTH_SPACE_ORDER
Consulte DML_DEPTH_SPACE_ORDER.
Ejemplos
Todos los ejemplos de esta sección usan la entrada siguiente.
InputTensor: (Sizes:{1, 8, 2, 3}, DataType:UINT32)
[[[[0, 1, 2],
[3, 4, 5]],
[[9, 10, 11],
[12, 13, 14]],
[[18, 19, 20],
[21, 22, 23]],
[[27, 28, 29],
[30, 31, 32]],
[[36, 37, 38],
[39, 40, 41]],
[[45, 46, 47],
[48, 49, 50]],
[[54, 55, 56],
[57, 58, 59]],
[[63, 64, 65],
[66, 67, 68]]]]
Ejemplo 1. Orden de fila de columna de profundidad
BlockSize: 2
Order: DML_DEPTH_SPACE_ORDER_DEPTH_COLUMN_ROW
OutputTensor: (Sizes:{1, 2, 4, 6}, DataType:UINT32)
[[[[ 0, 18, 1, 19, 2, 20],
[36, 54, 37, 55, 38, 56],
[ 3, 21, 4, 22, 5, 23],
[39, 57, 40, 58, 41, 59]],
[[ 9, 27, 10, 28, 11, 29],
[45, 63, 46, 64, 47, 65],
[12, 30, 13, 31, 14, 32],
[48, 66, 49, 67, 50, 68]]]]
Ejemplo 2. Orden de profundidad de fila de columna
BlockSize: 2
Order: DML_DEPTH_SPACE_ORDER_COLUMN_ROW_DEPTH
OutputTensor: (Sizes:{1, 2, 4, 6}, DataType:UINT32)
[[[[ 0, 9, 1, 10, 2, 11],
[18, 27, 19, 28, 20, 29],
[ 3, 12, 4, 13, 5, 14],
[21, 30, 22, 31, 23, 32]],
[[36, 45, 37, 46, 38, 47],
[54, 63, 55, 64, 56, 65],
[39, 48, 40, 49, 41, 50],
[57, 66, 58, 67, 59, 68]]]]
Comentarios
Cuando Order se establece en DML_DEPTH_SPACE_ORDER_DEPTH_COLUMN_ROW, DML_DEPTH_TO_SPACE1_OPERATOR_DESC equivale a DML_DEPTH_TO_SPACE_OPERATOR_DESC.
Disponibilidad
Este operador se introdujo en DML_FEATURE_LEVEL_2_1
.
Restricciones tensor
InputTensor y OutputTensor deben tener el mismo tipo de datos.
Compatibilidad con Tensor
DML_FEATURE_LEVEL_5_0 y versiones posteriores
Tensor | Clase | Dimensions | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|---|
InputTensor | Entrada | { BatchCount, InputChannelCount, InputHeight, InputWidth } | 4 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
OutputTensor | Resultados | { BatchCount, OutputChannelCount, OutputHeight, OutputWidth } | 4 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_2_1 y versiones posteriores
Tensor | Clase | Dimensions | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|---|
InputTensor | Entrada | { BatchCount, InputChannelCount, InputHeight, InputWidth } | 4 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
OutputTensor | Resultados | { BatchCount, OutputChannelCount, OutputHeight, OutputWidth } | 4 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
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 |