структура 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

См. также раздел