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 |