Поделиться через


структура DML_RESAMPLE_GRAD_OPERATOR_DESC (directml.h)

Вычисляет градиенты обратного распространения для повторной выборки (см . DML_RESAMPLE1_OPERATOR_DESC).

DML_RESAMPLE1_OPERATOR_DESC перемасштабирует произвольные размеры входного тензора с помощью выборки ближайшего соседа или билинейной интерполяции. Учитывая inputGradientTensor с теми же размерами, что и выходные данные эквивалентного DML_RESAMPLE1_OPERATOR_DESC, этот оператор создает OutputGradientTensor с теми же размерами, что и входныеданные DML_RESAMPLE1_OPERATOR_DESC.

В качестве примера рассмотрим DML_RESAMPLE1_OPERATOR_DESC , выполняющую масштабирование с ближайшим соседем в ширину 1,5x и 0,5x в высоту.

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

Обратите внимание, что 0-й элемент входного тензора (со значением 1) вносит вклад в два элемента в выходных данных, первый элемент (со значением 2) — один элемент в выходных данных, а второй и 3-й элементы (со значениями 3 и 4) не вносят никаких элементов выходных данных.

Соответствующий DML_RESAMPLE_GRAD_OPERATOR_DESC выполнит следующие действия.

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

Обратите внимание, что значения в OutputGradientTensor представляют взвешанные вклады этого элемента в OutputTensor во время исходного оператора DML_RESAMPLE1_OPERATOR_DESC .

Синтаксис

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

Члены

InputGradientTensor

Тип: const DML_TENSOR_DESC*

Тензор входящего градиента. Обычно это получается из выходных данных обратного распространения предыдущего слоя. Обычно этот тензор имеет те же размеры, что и выходные данные соответствующего DML_RESAMPLE1_OPERATOR_DESC на переднем проходе.

OutputGradientTensor

Тип: const DML_TENSOR_DESC*

Выходной тензор, содержащий обратные градиенты. Как правило, этот тензор имеет те же размеры, что и входные данные соответствующего DML_RESAMPLE1_OPERATOR_DESC на переднем проходе.

InterpolationMode

Тип: DML_INTERPOLATION_MODE

См. раздел ИнтерполяцияMode в DML_RESAMPLE1_OPERATOR_DESC.

DimensionCount

Тип: UINT

Количество элементов в массивах Scales, InputPixelOffsets и OutputPixelOffsets . Это значение должно быть равно DimensionCount , указанному в inputGradientTensor и OutputGradientTensor.

Scales

Тип: _Field_size_(DimensionCount) const FLOAT*

См . раздел Масштабы в DML_RESAMPLE1_OPERATOR_DESC.

InputPixelOffsets

Тип: _Field_size_(DimensionCount) const FLOAT*

См . раздел InputPixelOffsets в DML_RESAMPLE1_OPERATOR_DESC.

OutputPixelOffsets

Тип: _Field_size_(DimensionCount) const FLOAT*

См. раздел OutputPixelOffsets в DML_RESAMPLE1_OPERATOR_DESC.

Доступность

Этот оператор появился в DML_FEATURE_LEVEL_3_0.

Ограничения тензоров

InputGradientTensor и OutputGradientTensor должны иметь одинаковые значения DataType и DimensionCount.

Поддержка тензоров

DML_FEATURE_LEVEL_5_1 и выше

Тензор Kind Поддерживаемые счетчики измерений Поддерживаемые типы данных
InputGradientTensor Входные данные от 1 до 4 FLOAT32, FLOAT16
OutputGradientTensor Выходные данные от 1 до 4 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_3_0 и выше

Тензор Kind Поддерживаемые счетчики измерений Поддерживаемые типы данных
InputGradientTensor Входные данные 4 FLOAT32, FLOAT16
OutputGradientTensor Выходные данные 4 FLOAT32, FLOAT16

Требования

   
Минимальная версия клиента Windows 10 сборки 20348
Минимальная версия сервера Windows 10 сборки 20348
Верхняя часть directml.h