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.
Reorganiza los bloques de datos espaciales en profundidad. El operador genera una copia del tensor de entrada donde los valores de las dimensiones de alto y ancho se mueven a la dimensión de profundidad.
Esta es la transformación inversa de DML_DEPTH_TO_SPACE1_OPERATOR_DESC.
Sintaxis
struct DML_SPACE_TO_DEPTH1_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 desde el que se va a leer. Las dimensiones del tensor de entrada son { Batch, Channels, Height, Width }.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Tensor en el que se van a escribir los resultados. Las dimensiones del tensor de salida son { Batch, Channels / (BlockSize * BlockSize), Height * BlockSize, Width * 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
Ejemplo 1. Orden de fila de columna de profundidad
BlockSize: 2
Order: DML_DEPTH_SPACE_ORDER_DEPTH_COLUMN_ROW
InputTensor: (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]]]]
OutputTensor: (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 2. Orden de profundidad de fila de columna
BlockSize: 2
Order: DML_DEPTH_SPACE_ORDER_COLUMN_ROW_DEPTH
InputTensor: (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]]]]
OutputTensor: (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]]]]
Comentarios
Cuando el parámetro Order se establece en DML_DEPTH_SPACE_ORDER_DEPTH_COLUMN_ROW, este operador es equivalente a DML_SPACE_TO_DEPTH_OPERATOR_DESC.
Disponibilidad
Este operador se introdujo en DML_FEATURE_LEVEL_2_1.
Restricciones tensor
InputTensor y OutputTensor deben tener el mismo DataType.
Compatibilidad con Tensor
DML_FEATURE_LEVEL_5_0 y versiones posteriores
| Tensor | Kind | 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 | Kind | 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
| Cliente mínimo compatible | Compilación 20348 de Windows 10 |
| Servidor mínimo compatible | Compilación 20348 de Windows 10 |
| Encabezado | directml.h |