структура 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
См. раздел Интерполяция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 |