Share via


estrutura DML_SLICE_GRAD_OPERATOR_DESC (directml.h)

Calcula gradientes de backpropagation para Fatia (consulte DML_SLICE1_OPERATOR_DESC).

Lembre-se de que DML_SLICE1_OPERATOR_DESC extrai uma sub-região de um tensor de entrada. Dado um InputGradientTensor com os mesmos tamanhos que a saída de um DML_SLICE1_OPERATOR_DESC equivalente, esse operador produz um OutputGradientTensor com os mesmos tamanhos que a entrada de DML_SLICE1_OPERATOR_DESC. Os elementos segmentados são propagados para a saída e todos os outros elementos são definidos como 0.

Por exemplo, considere uma DML_SLICE1_OPERATOR_DESC que extrai os seguintes elementos de um tensor:

InputTensor            OutputTensor
[[a, b, c, d],
 [e, f, g, h],   Slice   [[a, c],
 [i, j, k, l],    -->     [i, k]]
 [m, n, o, p]]

Se for fornecido o mesmo InputWindowOffsets Sizes//Strides como no exemplo acima, esse operador executará a transformação a seguir.

InputGradientTensor       OutputGradientTensor
                             [[a, 0, c, 0],
      [[a, c],   SliceGrad    [0, 0, 0, 0],
       [i, k]]      -->       [i, 0, k, 0],
                              [0, 0, 0, 0]]

Sintaxe

struct DML_SLICE_GRAD_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputGradientTensor;
  const DML_TENSOR_DESC *OutputGradientTensor;
  UINT                  DimensionCount;
  const UINT            *InputWindowOffsets;
  const UINT            *InputWindowSizes;
  const INT             *InputWindowStrides;
};

Membros

InputGradientTensor

Tipo: const DML_TENSOR_DESC*

O tensor de gradiente de entrada. Normalmente, isso é obtido da saída de backpropagation de uma camada anterior. Normalmente, esse tensor teria os mesmos tamanhos que a saída do DML_SLICE1_OPERATOR_DESC correspondente no passe para frente.

OutputGradientTensor

Tipo: const DML_TENSOR_DESC*

Um tensor de saída que contém os gradientes backpropagated. Normalmente, esse tensor teria os mesmos tamanhos que a entrada do DML_SLICE1_OPERATOR_DESC correspondente no passe para frente.

DimensionCount

Tipo: UINT

O número de elementos nas matrizes InputWindowOffsets, InputWindowSizes e InputWindowStrides . Esse valor deve ser igual ao DimensionCount fornecido em InputGradientTensor e OutputGradientTensor.

InputWindowOffsets

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte InputWindowOffsets no DML_SLICE1_OPERATOR_DESC.

InputWindowSizes

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte InputWindowSizes no DML_SLICE1_OPERATOR_DESC.

InputWindowStrides

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte InputWindowStrides em DML_SLICE1_OPERATOR_DESC.

Observe que, ao contrário de DML_SLICE1_OPERATOR_DESC, esse operador requer avanços diferentes de zero. Isso ocorre porque, com um passo zero, é ambíguo sobre qual elemento de entrada deve ser mapeado para cada elemento de saída e, portanto, a reprodução de fundo não pode ser executada. Como DML_SLICE1_OPERATOR_DESC, avanços negativos inverterão a direção da janela de entrada ao longo desse eixo.

Disponibilidade

Esse operador foi introduzido no DML_FEATURE_LEVEL_3_0.

Restrições do Tensor

InputGradientTensor e OutputGradientTensor devem ter os mesmos DataType e DimensionCount.

Suporte ao Tensor

DML_FEATURE_LEVEL_4_1 e superior

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
InputGradientTensor Entrada 1 a 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
OutputGradientTensor Saída 1 a 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_3_1 e superior

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
InputGradientTensor Entrada 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
OutputGradientTensor Saída 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_3_0 e superior

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
InputGradientTensor Entrada 4 a 5 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
OutputGradientTensor Saída 4 a 5 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10 Build 20348
Servidor mínimo com suporte Windows 10 Build 20348
Cabeçalho directml.h