структура DML_BATCH_NORMALIZATION_TRAINING_OPERATOR_DESC (directml.h)
Выполняет пакетную нормализацию входных данных. Этот оператор выполняет следующие вычисления: Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias + FusedAdd)
.
Для любого измерения в ScaleTensor и BiasTensor можно задать значение 1 и автоматически транслироваться в соответствии с InputTensor, но в противном случае размер соответствующего измерения должен совпадать с InputTensor. MeanTensor и VarianceTensor вычисляются на основе входных данных в наборе измерений, для которых масштабы ScaleTensor и BiasTensor равны единице.
struct DML_BATCH_NORMALIZATION_TRAINING_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *ScaleTensor;
const DML_TENSOR_DESC *BiasTensor;
const DML_TENSOR_DESC *FusedAddTensor;
const DML_TENSOR_DESC *OutputTensor;
const DML_TENSOR_DESC *OutputMeanTensor;
const DML_TENSOR_DESC *OutputVarianceTensor;
FLOAT Epsilon;
const DML_OPERATOR_DESC *FusedActivation;
};
InputTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий входные данные.
ScaleTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий данные масштабирования.
BiasTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий данные смещения.
FusedAddTensor
Тип: _Maybenull_ const DML_TENSOR_DESC*
Необязательный тензор, содержащий данные, которые добавляются к результату до FusedActivation, если таковые есть.
OutputTensor
Тип: const DML_TENSOR_DESC*
Тензор для записи результатов.
OutputMeanTensor
Тип: const DML_TENSOR_DESC*
Тензор, в который записывается среднее значение входных данных.
OutputVarianceTensor
Тип: const DML_TENSOR_DESC*
Тензор для записи дисперсии входных данных.
Epsilon
Тип: FLOAT
Значение epsilon, используемое для предотвращения деления на ноль.
FusedActivation
Тип: _Maybenull_ const DML_OPERATOR_DESC*
Необязательный слой плавленной активации, применяемый после нормализации. Дополнительные сведения см. в разделе Использование слитых операторов для повышения производительности.
Этот оператор появился в DML_FEATURE_LEVEL_4_1
.
- BiasTensor, FusedAddTensor, InputTensor, OutputMeanTensor, OutputTensor, OutputVarianceTensor и ScaleTensor должны иметь одинаковые значения DataType и DimensionCount.
- BiasTensor, OutputMeanTensor, OutputVarianceTensor и ScaleTensor должны иметь одинаковые размеры.
- FusedAddTensor, InputTensor и OutputTensor должны иметь одинаковые размеры.
Тензор | Kind | Измерения | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|---|
InputTensor | Входные данные | { InputDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
ScaleTensor | Входные данные | { ScaleDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
BiasTensor | Входные данные | { ScaleDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
FusedAddTensor | Необязательные входные данные | { InputDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
OutputTensor | Выходные данные | { InputDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
OutputMeanTensor | Выходные данные | { ScaleDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
OutputVarianceTensor | Выходные данные | { ScaleDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
Требование | Значение |
---|---|
Заголовок | directml.h |