Compartir a través de


estructura DML_DEPTH_TO_SPACE_OPERATOR_DESC (directml.h)

Reorganiza (permuta) 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_DEPTH_OPERATOR_DESC.

Sintaxis

struct DML_DEPTH_TO_SPACE_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *OutputTensor;
  UINT                  BlockSize;
};

Miembros

InputTensor

Tipo: const DML_TENSOR_DESC*

Tensor desde el 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/ (BlockSizeBlockSize * ).
  • OutputHeight se calcula como InputHeight * BlockSize.
  • OutputWidth se calcula como InputWidth * BlockSize.

BlockSize

Tipo: UINT

Ancho y alto de los bloques que se mueven.

Ejemplo

BlockSize: 2
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]]]]

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]]]]

Comentarios

Se introdujo una versión más reciente de este operador, DML_DEPTH_TO_SPACE1_OPERATOR_DESC, en DML_FEATURE_LEVEL_2_1.

Disponibilidad

Este operador se introdujo en DML_FEATURE_LEVEL_1_0.

Restricciones tensor

InputTensor y OutputTensor deben tener el mismo DataType.

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

DML_FEATURE_LEVEL_1_0 y versiones posteriores

Tensor Clase Dimensions Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada { BatchCount, InputChannelCount, InputHeight, InputWidth } 4 FLOAT32, FLOAT16
OutputTensor Resultados { BatchCount, OutputChannelCount, OutputHeight, OutputWidth } 4 FLOAT32, FLOAT16

Requisitos

Requisito Valor
Header directml.h

Consulte también