Compartilhar via


estrutura DML_RESAMPLE_GRAD_OPERATOR_DESC (directml.h)

Calcula gradientes de backpropagation para Resample (consulte DML_RESAMPLE1_OPERATOR_DESC).

DML_RESAMPLE1_OPERATOR_DESC redimensiona dimensões arbitrárias do tensor de entrada usando amostragem de vizinho mais próximo ou interpolação bilinear. Dado um InputGradientTensor com os mesmos tamanhos que a saída de um DML_RESAMPLE1_OPERATOR_DESC equivalente, esse operador produz um OutputGradientTensor com os mesmos tamanhos que a entrada do DML_RESAMPLE1_OPERATOR_DESC.

Por exemplo, considere uma DML_RESAMPLE1_OPERATOR_DESC que executa um dimensionamento vizinho mais próximo de 1,5x na largura e 0,5x na altura.

InputTensor           OutputTensor
[[1, 2],   Resample    [1, 1, 2]
 [3, 4]]      -->      

Observe como o 0º elemento do tensor de entrada (com o valor 1) contribui para dois elementos na saída, o 1º elemento (com o valor 2) contribui para um elemento na saída e os 2º e 3º elementos (com os valores 3 e 4) contribuem para nenhum elemento da saída.

O DML_RESAMPLE_GRAD_OPERATOR_DESC correspondente executaria o seguinte.

InputGradientTensor           OutputGradientTensor
    [4, 5, 6]      ResampleGrad    [[9, 6],
                       -->          [0, 0]]

Observe que os valores no OutputGradientTensor representam o contribuições ponderado desse elemento para o OutputTensor durante o operador de DML_RESAMPLE1_OPERATOR_DESC original.

Sintaxe

struct DML_RESAMPLE_GRAD_OPERATOR_DESC {
  const DML_TENSOR_DESC  *InputGradientTensor;
  const DML_TENSOR_DESC  *OutputGradientTensor;
  DML_INTERPOLATION_MODE InterpolationMode;
  UINT                   DimensionCount;
  const FLOAT            *Scales;
  const FLOAT            *InputPixelOffsets;
  const FLOAT            *OutputPixelOffsets;
};

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_RESAMPLE1_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_RESAMPLE1_OPERATOR_DESC correspondente no passe para frente.

InterpolationMode

Tipo: DML_INTERPOLATION_MODE

Consulte InterpolationMode em DML_RESAMPLE1_OPERATOR_DESC.

DimensionCount

Tipo: UINT

O número de elementos nas matrizes Scales, InputPixelOffsets e OutputPixelOffsets . Esse valor deve ser igual ao DimensionCount fornecido em InputGradientTensor e OutputGradientTensor.

Scales

Tipo: _Field_size_(DimensionCount) const FLOAT*

Confira Dimensionamentos em DML_RESAMPLE1_OPERATOR_DESC.

InputPixelOffsets

Tipo: _Field_size_(DimensionCount) const FLOAT*

Confira InputPixelOffsets no DML_RESAMPLE1_OPERATOR_DESC.

OutputPixelOffsets

Tipo: _Field_size_(DimensionCount) const FLOAT*

Consulte OutputPixelOffsets em DML_RESAMPLE1_OPERATOR_DESC.

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_5_1 e superior

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
InputGradientTensor Entrada 1 a 4 FLOAT32, FLOAT16
OutputGradientTensor Saída 1 a 4 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_3_0 e superior

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
InputGradientTensor Entrada 4 FLOAT32, FLOAT16
OutputGradientTensor Saída 4 FLOAT32, FLOAT16

Requisitos

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