структура DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC (directml.h)
Вычисляет градиенты обратного распространения для пакетной нормализации. DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC выполняет несколько вычислений, которые подробно описаны в отдельных описаниях выходных данных.
OutputScaleGradientTensor и OutputBiasGradientTensor вычисляются на основе сумм в наборе измерений, для которых размеры MeanTensor, ScaleTensor и VarianceTensor равны единице.
Синтаксис
struct DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *InputGradientTensor;
const DML_TENSOR_DESC *MeanTensor;
const DML_TENSOR_DESC *VarianceTensor;
const DML_TENSOR_DESC *ScaleTensor;
const DML_TENSOR_DESC *OutputGradientTensor;
const DML_TENSOR_DESC *OutputScaleGradientTensor;
const DML_TENSOR_DESC *OutputBiasGradientTensor;
FLOAT Epsilon;
};
Члены
InputTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий входные данные. Обычно это тот же тензор, который был предоставлен в качестве inputTensor для DML_BATCH_NORMALIZATION_OPERATOR_DESC в переадресации.
InputGradientTensor
Тип: const DML_TENSOR_DESC*
Тензор входящего градиента. Обычно это получается из выходных данных обратного распространения предыдущего слоя.
MeanTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий средние данные. Обычно это тот же тензор, который был предоставлен в качестве meanTensor для DML_BATCH_NORMALIZATION_OPERATOR_DESC на переднем проходе.
VarianceTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий данные дисперсии. Обычно это тот же тензор, который был указан в качестве varianceTensor для DML_OPERATOR_BATCH_NORMALIZATION на переднем проходе.
ScaleTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий данные масштабирования. Обычно это тот же тензор, который был предоставлен в качестве scaleTensor для DML_BATCH_NORMALIZATION_OPERATOR_DESC на переднем проходе.
OutputGradientTensor
Тип: const DML_TENSOR_DESC*
Для каждого соответствующего значения во входных данных — OutputGradient = InputGradient * (Scale / sqrt(Variance + Epsilon))
.
OutputScaleGradientTensor
Тип: const DML_TENSOR_DESC*
Выполняется следующее вычисление или каждое соответствующее значение во входных данных.
OutputScaleGradient = sum(InputGradient * (Input - Mean) / sqrt(Variance + Epsilon))
OutputBiasGradientTensor
Тип: const DML_TENSOR_DESC*
Выполняется следующее вычисление или каждое соответствующее значение во входных данных.
OutputBiasGradient = sum(InputGradient)
Epsilon
Тип: FLOAT
Небольшое значение, добавленное к дисперсии, чтобы избежать нуля.
Комментарии
Доступность
Этот оператор появился в DML_FEATURE_LEVEL_3_1
.
Ограничения тензоров
- InputGradientTensor, InputTensor, MeanTensor, OutputBiasGradientTensor, OutputGradientTensor, OutputScaleGradientTensor, ScaleTensor и VarianceTensor должны иметь одинаковые значения DataType и DimensionCount.
- MeanTensor, OutputBiasGradientTensor, OutputScaleGradientTensor, ScaleTensor и VarianceTensor должны иметь одинаковые размеры.
- InputGradientTensor, InputTensor и OutputGradientTensor должны иметь одинаковые размеры.
Поддержка тензоров
Тензор | Kind | Измерения | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|---|
InputTensor | Входные данные | { InputDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
InputGradientTensor | Входные данные | { InputDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
MeanTensor | Входные данные | { MeanDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
VarianceTensor | Входные данные | { MeanDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
ScaleTensor | Входные данные | { MeanDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
OutputGradientTensor | Выходные данные | { InputDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
OutputScaleGradientTensor | Выходные данные | { MeanDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
OutputBiasGradientTensor | Выходные данные | { MeanDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Сборка Windows 22000 |
Минимальная версия сервера | Сборка Windows 22000 |
Верхняя часть | directml.h |