структура DML_BATCH_NORMALIZATION_OPERATOR_DESC (directml.h)
Выполняет пакетную нормализацию входных данных. Этот оператор выполняет следующие вычисления: Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias)
.
Любое измерение в MeanTensor, VarianceTensor, ScaleTensor и BiasTensor может иметь значение 1 и автоматически транслироваться в соответствии с InputTensor, но в противном случае должно быть равно размеру соответствующего измерения из InputTensor.
Синтаксис
struct DML_BATCH_NORMALIZATION_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *MeanTensor;
const DML_TENSOR_DESC *VarianceTensor;
const DML_TENSOR_DESC *ScaleTensor;
const DML_TENSOR_DESC *BiasTensor;
const DML_TENSOR_DESC *OutputTensor;
BOOL Spatial;
FLOAT Epsilon;
const DML_OPERATOR_DESC *FusedActivation;
};
Члены
InputTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий входные данные.
MeanTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий средние данные.
VarianceTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий данные дисперсии.
ScaleTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий данные масштабирования.
BiasTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий данные смещения.
OutputTensor
Тип: const DML_TENSOR_DESC*
Тензор для записи результатов.
Spatial
Тип: BOOL
Значение TRUE , чтобы указать, что расположения являются пространственными, в противном случае — ЗНАЧЕНИЕ FALSE. Если задать для этого параметра значение FALSE , потребуется, чтобы размеры Width и Height для MeanTensor и VarianceTensor не были широковещательными. Этот параметр не рекомендуется использовать в DML_FEATURE_LEVEL_4_0 и не действует.
Epsilon
Тип: FLOAT
Значение epsilon, используемое для предотвращения деления на ноль.
FusedActivation
Тип: _Maybenull_ const DML_OPERATOR_DESC*
Необязательный слой плавленной активации, применяемый после нормализации. Дополнительные сведения см. в разделе Использование слитых операторов для повышения производительности.
Доступность
Этот оператор появился в DML_FEATURE_LEVEL_1_0
.
Ограничения тензоров
- BiasTensor, InputTensor, MeanTensor, OutputTensor, ScaleTensor и VarianceTensor должны иметь одинаковые значения DataType и DimensionCount.
- InputTensor и OutputTensor должны иметь одинаковые размеры.
Поддержка тензоров
DML_FEATURE_LEVEL_3_1 и выше
Тензор | Kind | Измерения | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|---|
InputTensor | Входные данные | { InputDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
MeanTensor | Входные данные | { MeanDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
VarianceTensor | Входные данные | { VarianceDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
ScaleTensor | Входные данные | { ScaleDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
BiasTensor | Входные данные | { BiasDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
OutputTensor | Выходные данные | { InputDimensions[] } | От 1 до 8 | FLOAT32, FLOAT16 |
DML_FEATURE_LEVEL_1_0 и выше
Тензор | Kind | Измерения | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|---|
InputTensor | Входные данные | { InputDimensions[] } | 4 | FLOAT32, FLOAT16 |
MeanTensor | Входные данные | { MeanDimensions[] } | 4 | FLOAT32, FLOAT16 |
VarianceTensor | Входные данные | { VarianceDimensions[] } | 4 | FLOAT32, FLOAT16 |
ScaleTensor | Входные данные | { ScaleDimensions[] } | 4 | FLOAT32, FLOAT16 |
BiasTensor | Входные данные | { BiasDimensions[] } | 4 | FLOAT32, FLOAT16 |
OutputTensor | Выходные данные | { InputDimensions[] } | 4 | FLOAT32, FLOAT16 |
Требования
Верхняя часть | directml.h |