Compartilhar via


Estrutura DML_RESAMPLE_GRAD1_OPERATOR_DESC (directml.h)

Calcula gradientes de retropropagação para DML_RESAMPLE2_OPERATOR_DESC.

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

Como exemplo, considere um DML_RESAMPLE2_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 valor 1) contribui para dois elementos na saída; o 1º elemento (com valor 2) contribui para um elemento na saída; e os 2º e 3º elementos (com valores 3 e 4) não contribuem para nenhum elemento da saída.

O DML_RESAMPLE_GRAD1_OPERATOR_DESC correspondente executaria o seguinte:

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

Observe que os valores no OutputGradientTensor representam as contribuições ponderadas desse elemento para o OutputTensor durante o operador DML_RESAMPLE2_OPERATOR_DESC original.

Importante

Essa API está disponível como parte do pacote redistribuível autônomo DirectML (consulte Microsoft.AI.DirectML versão 1.9 e posterior. Confira também o histórico de versões do DirectML.

Sintaxe

struct DML_RESAMPLE_GRAD1_OPERATOR_DESC
{
    const DML_TENSOR_DESC* InputGradientTensor;
    const DML_TENSOR_DESC* OutputGradientTensor;
    DML_INTERPOLATION_MODE InterpolationMode;
    DML_AXIS_DIRECTION RoundingDirection;
    UINT DimensionCount;
    _Field_size_(DimensionCount) const FLOAT* Scales;
    _Field_size_(DimensionCount) const FLOAT* InputPixelOffsets;
    _Field_size_(DimensionCount) const FLOAT* OutputPixelOffsets;
};

Membros

InputGradientTensor

Tipo: const DML_TENSOR_DESC*

O tensor de gradiente de entrada. Ele normalmente é obtido a partir da saída de retropropagação de uma camada anterior. Normalmente, esse tensor teria os mesmos tamanhos que a saída do DML_RESAMPLE2_OPERATOR_DESC correspondente no passe para frente.

OutputGradientTensor

Tipo: const DML_TENSOR_DESC*

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

InterpolationMode

Tipo: DML_INTERPOLATION_MODE

Confira DML_RESAMPLE2_OPERATOR_DESC::InterpolationMode.

RoundingDirection

Tipo: DML_AXIS_DIRECTION

Confira DML_RESAMPLE2_OPERATOR_DESC::RoundingDirection.

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 DML_RESAMPLE2_OPERATOR_DESC::Scales.

InputPixelOffsets

Tipo: _Field_size_(DimensionCount) const FLOAT*

Confira DML_RESAMPLE2_OPERATOR_DESC::InputPixelOffsets.

OutputPixelOffsets

Tipo: _Field_size_(DimensionCount) const FLOAT*

Confira DML_RESAMPLE2_OPERATOR_DESC::OutputPixelOffsets.

Comentários

Esse operador é equivalente a DML_RESAMPLE_GRAD_OPERATOR_DESC quando InterpolationMode é definido como DML_INTERPOLATION_MODE_LINEAR; ou quando InterpolationMode é definido como DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR e RoundingDirection como DML_AXIS_DIRECTION_DECREASING e OutputPixelOffsets são ajustados um -0,5 adicional.

Disponibilidade

Esse operador foi introduzido em DML_FEATURE_LEVEL_5_1.

Restrições de tensor

InputGradientTensor e OutputGradientTensor devem ter o mesmo DataType e DimensionCount.

Suporte a tensores

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

Requisitos

   
Cabeçalho directml.h