Ағылшын тілінде оқу

Бөлісу құралы:


структура 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 равны единице.

Синтаксис

C++
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 должны иметь одинаковые размеры.

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

DML_FEATURE_LEVEL_4_1 и выше

Тензор 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

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