Udostępnij przez


struktura DML_RESAMPLE_GRAD1_OPERATOR_DESC (directml.h)

Oblicza gradienty wsteczne propagacji dla DML_RESAMPLE2_OPERATOR_DESC.

DML_RESAMPLE2_OPERATOR_DESC ponownie skaluje dowolne wymiary tensoru wejściowego przy użyciu próbkowania najbliższego sąsiada lub interpolacji dwuliniowej. Biorąc pod uwagę element InputGradientTensor o tych samych rozmiarach co dane wyjściowerównoważnego DML_RESAMPLE2_OPERATOR_DESC, ten operator generuje obiekt OutputGradientTensor o takich samych rozmiarach jak dane wejścioweDML_RESAMPLE2_OPERATOR_DESC.

Rozważmy na przykład DML_RESAMPLE2_OPERATOR_DESC , która wykonuje skalowanie najbliższego sąsiada o wartości 1,5 x szerokości i 0,5 x wysokości:

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

Zwróć uwagę, że 0. element tensor wejściowy (z wartością 1) przyczynia się do dwóch elementów w danych wyjściowych; element 1 (z wartością 2) przyczynia się do jednego elementu w danych wyjściowych; a 2 i 3 elementy (z wartościami 3 i 4) nie przyczyniają się do żadnych elementów danych wyjściowych.

Odpowiednie DML_RESAMPLE_GRAD1_OPERATOR_DESC wykonałyby następujące czynności:

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

Zwróć uwagę, że wartości w elemecie OutputGradientTensor reprezentują ważony wkład tego elementu do elementu OutputTensor podczas oryginalnego operatora DML_RESAMPLE2_OPERATOR_DESC .

Ważne

Ten interfejs API jest dostępny w ramach autonomicznego pakietu redystrybucyjnego DirectML (zobacz Microsoft.AI.DirectML w wersji 1.9 lub nowszej. Zobacz również historię wersji języka DirectML.

Składnia

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;
};

Członkowie

InputGradientTensor

Typ: const DML_TENSOR_DESC*

Tensor gradientu przychodzącego. Jest to zwykle uzyskiwane z danych wyjściowych wstecznego propagacji poprzedniej warstwy. Zazwyczaj ten tensor ma takie same rozmiary jak dane wyjścioweodpowiadające DML_RESAMPLE2_OPERATOR_DESC w przekazaniu do przodu.

OutputGradientTensor

Typ: const DML_TENSOR_DESC*

Tensor wyjściowy zawierający gradienty z propagacją wsteczną. Zazwyczaj ten tensor ma takie same rozmiary jak dane wejściowe odpowiadające DML_RESAMPLE2_OPERATOR_DESC w przekazaniu do przodu.

InterpolationMode

Typ: DML_INTERPOLATION_MODE

Zobacz DML_RESAMPLE2_OPERATOR_DESC::InterpolationMode.

RoundingDirection

Typ: DML_AXIS_DIRECTION

Zobacz DML_RESAMPLE2_OPERATOR_DESC::RoundingDirection.

DimensionCount

Typ: UINT

Liczba elementów w tablicach Scales, InputPixelOffsets i OutputPixelOffsets . Ta wartość musi być równa wartości DimensionCount podanej w elementy InputGradientTensor i OutputGradientTensor.

Scales

Typ: _Field_size_(DimensionCount) const FLOAT*

Zobacz DML_RESAMPLE2_OPERATOR_DESC::Scales.

InputPixelOffsets

Typ: _Field_size_(DimensionCount) const FLOAT*

Zobacz DML_RESAMPLE2_OPERATOR_DESC::InputPixelOffsets.

OutputPixelOffsets

Typ: _Field_size_(DimensionCount) const FLOAT*

Zobacz DML_RESAMPLE2_OPERATOR_DESC::OutputPixelOffsets.

Uwagi

Ten operator jest odpowiednikiem DML_RESAMPLE_GRAD_OPERATOR_DESC , gdy parametr InterpolationMode jest ustawiony na DML_INTERPOLATION_MODE_LINEAR; lub gdy parametr InterpolationMode ma ustawioną wartość DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR, a element RoundingDirection na wartość DML_AXIS_DIRECTION_DECREASING, a parametr OutputPixelOffsets zostanie skorygowany o dodatkową wartość -0,5.

Dostępność

Ten operator został wprowadzony w DML_FEATURE_LEVEL_5_1.

Ograniczenia dotyczące tensorów

Klasy InputGradientTensor i OutputGradientTensor muszą mieć ten sam typ danych i parametr DimensionCount.

Obsługa biblioteki Tensor

Tensor Rodzaj Obsługiwane liczby wymiarów Obsługiwane typy danych
InputGradientTensor Dane wejściowe Od 1 do 4 FLOAT32, FLOAT16
OutputGradientTensor Wynik Od 1 do 4 FLOAT32, FLOAT16

Wymagania

   
Nagłówek directml.h