Compartir a través de


estructura DML_SLICE_OPERATOR_DESC (directml.h)

Extrae una sola subregión (un "segmento") de un tensor de entrada.

Los elementos copiados en el segmento se determinan con tres valores para cada dimensión.

  • El desplazamiento marca el primer elemento que se va a copiar en una dimensión.
  • El tamaño marca el número de elementos que se van a copiar en una dimensión.
  • El paso indica el incremento o paso del elemento en una dimensión.

Los desplazamientos, tamaños y pasos proporcionados solo deben copiar elementos que estén dentro de los límites del tensor de entrada (no se permiten lecturas fuera de límite). Los tamaños del segmento deben coincidir exactamente con los tamaños de tensor de salida. En general, los elementos copiados se calculan de la siguiente manera.

OutputTensor[OutputCoordinates] = InputTensor[Offsets + Strides * OutputCoordinates]

Sintaxis

struct DML_SLICE_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *OutputTensor;
  UINT                  DimensionCount;
  const UINT            *Offsets;
  const UINT            *Sizes;
  const UINT            *Strides;
};

Miembros

InputTensor

Tipo: const DML_TENSOR_DESC*

Tensor del que se van a extraer segmentos.

OutputTensor

Tipo: const DML_TENSOR_DESC*

Tensor en el que se van a escribir los resultados de los datos segmentados.

DimensionCount

Tipo: UINT

Número de dimensiones. Este campo determina el tamaño de las matrices Offsets, Sizes y Strides . Este valor debe coincidir con dimensionCount de los tensores de entrada y salida. Este valor debe estar comprendido entre 1 y 8, inclusive, a partir de ; los niveles de DML_FEATURE_LEVEL_3_0características anteriores requieren un valor de 4 o 5.

Offsets

Tipo: _Field_size_(DimensionCount) const UINT*

Matriz que contiene el inicio del segmento a lo largo de cada dimensión del tensor de entrada, en los elementos .

Sizes

Tipo: _Field_size_(DimensionCount) const UINT*

Matriz que contiene el tamaño del segmento a lo largo de cada dimensión, en elementos. Los valores de esta matriz deben coincidir con los tamaños especificados en el tensor de salida.

Strides

Tipo: _Field_size_(DimensionCount) const UINT*

Matriz que contiene el paso del segmento a lo largo de cada dimensión del tensor de entrada, en los elementos . Un paso mayor que 1 indica que se pueden omitir los elementos del tensor de entrada (por ejemplo, un paso de 2 seleccionará cada segundo elemento a lo largo de la dimensión).

Ejemplos

En los ejemplos siguientes se usa el mismo tensor de entrada:

InputTensor: (Sizes:{1, 1, 4, 4}, DataType:FLOAT32)
[[[[ 1,  2,  3,  4],
   [ 5,  6,  7,  8],
   [ 9, 10, 11, 12],
   [13, 14, 15, 16]]]]

Ejemplo 1. Segmento contiguo

Offsets = {0, 0, 1, 2}
Sizes   = {1, 1, 3, 2}
Strides = {1, 1, 1, 1}

OutputTensor: (Sizes:{1, 1, 3, 2}, DataType:FLOAT32)
[[[[ 7,  8],
   [11, 12],
   [15, 16]]]]

Ejemplo 2. Segmento estridado

Offsets = {0, 0, 1, 0}
Sizes   = {1, 1, 2, 2}
Strides = {1, 1, 2, 3}

OutputTensor: (Sizes:{1, 1, 2, 2}, DataType:FLOAT32)
[[[[ 5,  8],
   [13, 16]]]]

Comentarios

Se introdujo una versión más reciente de este operador, DML_SLICE1_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 y DimensionCount.

Compatibilidad con Tensor

DML_FEATURE_LEVEL_4_1 y versiones posteriores

Tensor Clase Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada De 1 a 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
OutputTensor Resultados De 1 a 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_3_0 y versiones posteriores

Tensor Clase Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada De 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
OutputTensor Resultados De 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_2_1 y versiones posteriores

Tensor Clase Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada De 4 a 5 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
OutputTensor Resultados De 4 a 5 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_1_0 y versiones posteriores

Tensor Clase Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada De 4 a 5 FLOAT32, FLOAT16, INT32, INT16, UINT32, UINT16
OutputTensor Resultados De 4 a 5 FLOAT32, FLOAT16, INT32, INT16, UINT32, UINT16

Requisitos

Requisito Valor
Header directml.h