Поделиться через


структура DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC (directml.h)

Выполняет функцию нормализации средней дисперсии для входного тензора. Этот оператор вычисляет среднее и дисперсию входного тензора для выполнения нормализации. Этот оператор выполняет следующие вычисления.

Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias).

Синтаксис

struct DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC {
  const DML_TENSOR_DESC   *InputTensor;
  const DML_TENSOR_DESC   *ScaleTensor;
  const DML_TENSOR_DESC   *BiasTensor;
  const DML_TENSOR_DESC   *OutputTensor;
  UINT                    AxisCount;
  const UINT              *Axes;
  BOOL                    NormalizeVariance;
  FLOAT                   Epsilon;
  const DML_OPERATOR_DESC *FusedActivation;
};

Члены

InputTensor

Тип: const DML_TENSOR_DESC*

Тензор, содержащий входные данные. Измерения этого тензора должны иметь значение { BatchCount, ChannelCount, Height, Width }.

ScaleTensor

Тип: _Maybenull_ const DML_TENSOR_DESC*

Необязательный тензор, содержащий данные масштабирования.

Если DML_FEATURE_LEVEL меньше DML_FEATURE_LEVEL_4_0, то размеры этого тензора должны быть { ScaleBatchCount, ChannelCount, ScaleHeight, ScaleWidth }. Измерения ScaleBatchCount, ScaleHeight и ScaleWidth должны либо совпадать с InputTensor, либо иметь значение 1, чтобы автоматически транслировать эти измерения через входные данные.

Если DML_FEATURE_LEVEL больше или равно DML_FEATURE_LEVEL_4_0, то для любого измерения можно задать значение 1 и автоматически транслироваться в соответствии с InputTensor.

Если DML_FEATURE_LEVEL меньше DML_FEATURE_LEVEL_5_2, этот тензор требуется, если присутствует BiasTensor . Если DML_FEATURE_LEVEL больше или равно DML_FEATURE_LEVEL_5_2, то этот тензор может иметь значение NULL независимо от значения BiasTensor.

BiasTensor

Тип: _Maybenull_ const DML_TENSOR_DESC*

Необязательный тензор, содержащий данные смещения.

Если DML_FEATURE_LEVEL меньше DML_FEATURE_LEVEL_4_0, то размеры этого тензора должны быть { BiasBatchCount, ChannelCount, BiasHeight, BiasWidth }. Измерения BiasBatchCount, BiasHeight и BiasWidth должны либо совпадать с InputTensor, либо иметь значение 1, чтобы автоматически транслировать эти измерения по входным данным.

Если DML_FEATURE_LEVEL больше или равно DML_FEATURE_LEVEL_4_0, то для любого измерения можно задать значение 1 и автоматически транслироваться в соответствии с InputTensor.

Если DML_FEATURE_LEVEL меньше DML_FEATURE_LEVEL_5_2, то при наличии ScaleTensor этот тензор является обязательным. Если DML_FEATURE_LEVEL больше или равно DML_FEATURE_LEVEL_5_2, то этот тензор может иметь значение NULL независимо от значения ScaleTensor.

OutputTensor

Тип: const DML_TENSOR_DESC*

Тензор для записи результатов. Измерения этого тензора — .{ BatchCount, ChannelCount, Height, Width }

AxisCount

Тип: UINT

Количество осей. Это поле определяет размер массива осей .

Axes

Тип: _Field_size_(AxisCount) const UINT*

Оси, вдоль которых вычисляется среднее и дисперсию.

NormalizeVariance

Тип: BOOL

Значение TRUE , если уровень нормализации включает дисперсию в вычислении нормализации. В противном случае — FALSE. Если значение РАВНО FALSE, то уравнение нормализации имеет значение Output = FusedActivation(Scale * (Input - Mean) + Bias).

Epsilon

Тип: FLOAT

Значение epsilon, используемое для предотвращения деления на ноль. По умолчанию рекомендуется использовать значение 0,00001.

FusedActivation

Тип: _Maybenull_ const DML_OPERATOR_DESC*

Необязательный слой плавленной активации, применяемый после нормализации.

Комментарии

DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC — это надмножество функций DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC. В этом случае установка массива { 2, 3 }Осей в значение эквивалентна значению FALSE в параметреCrossChannel в DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC. В то время как установка массива осей в значение эквивалентна параметру { 1, 2, 3 }CrossChannel значения TRUE.

Доступность

Этот оператор появился в DML_FEATURE_LEVEL_2_1.

Ограничения тензоров

BiasTensor, InputTensor, OutputTensor и ScaleTensor должны иметь одинаковые значения DataType и DimensionCount.

Поддержка тензоров

DML_FEATURE_LEVEL_3_1 и выше

Тензор Kind Поддерживаемые счетчики измерений Поддерживаемые типы данных
InputTensor Входные данные От 1 до 8 FLOAT32, FLOAT16
ScaleTensor Необязательные входные данные От 1 до 8 FLOAT32, FLOAT16
BiasTensor Необязательные входные данные От 1 до 8 FLOAT32, FLOAT16
OutputTensor Выходные данные От 1 до 8 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_2_1 и выше

Тензор Kind Поддерживаемые счетчики измерений Поддерживаемые типы данных
InputTensor Входные данные 4 FLOAT32, FLOAT16
ScaleTensor Необязательные входные данные 4 FLOAT32, FLOAT16
BiasTensor Необязательные входные данные 4 FLOAT32, FLOAT16
OutputTensor Выходные данные 4 FLOAT32, FLOAT16

Требования

   
Минимальная версия клиента сборка Windows 10 20348
Минимальная версия сервера сборка Windows 10 20348
Верхняя часть directml.h

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

Использование плавленных операторов для повышения производительности