Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
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 |