共用方式為


DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC結構 (directml.h)

計算 批次正規化的反向傳播漸層。 DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC 會執行多個計算,這些計算會在個別的輸出描述中詳述。

OutputScaleGradientTensorOutputBiasGradientTensor 是使用平均數、ScaleTensorVarianceTensor 大小等於一組維度的總和來計算。

語法

struct DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *InputGradientTensor;
  const DML_TENSOR_DESC *MeanTensor;
  const DML_TENSOR_DESC *VarianceTensor;
  const DML_TENSOR_DESC *ScaleTensor;
  const DML_TENSOR_DESC *OutputGradientTensor;
  const DML_TENSOR_DESC *OutputScaleGradientTensor;
  const DML_TENSOR_DESC *OutputBiasGradientTensor;
  FLOAT                 Epsilon;
};

成員

InputTensor

類型: const DML_TENSOR_DESC*

包含輸入數據的張量。 這通常與 InputTensor 提供的張量相同,以在轉送中 DML_BATCH_NORMALIZATION_OPERATOR_DESC

InputGradientTensor

類型: const DML_TENSOR_DESC*

傳入漸層張量。 這通常是從前一層反向傳播的輸出取得。

MeanTensor

類型: const DML_TENSOR_DESC*

包含平均數據的張量。 這通常是與 MeanTensor 一樣提供的張量,以在轉送中 DML_BATCH_NORMALIZATION_OPERATOR_DESC

VarianceTensor

類型: const DML_TENSOR_DESC*

包含變數。 這通常與 VarianceTensor 提供的張量相同,以在轉送中 DML_OPERATOR_BATCH_NORMALIZATION

ScaleTensor

類型: const DML_TENSOR_DESC*

包含縮放數據的張量。 這通常與 ScaleTensor 提供的張量相同,以在轉送中 DML_BATCH_NORMALIZATION_OPERATOR_DESC

OutputGradientTensor

類型: const DML_TENSOR_DESC*

針對輸入中的每個對應值, OutputGradient = InputGradient * (Scale / sqrt(Variance + Epsilon))

OutputScaleGradientTensor

類型: const DML_TENSOR_DESC*

下列計算完成或輸入中的每個對應值。

OutputScaleGradient = sum(InputGradient * (Input - Mean) / sqrt(Variance + Epsilon))

OutputBiasGradientTensor

類型: const DML_TENSOR_DESC*

下列計算完成或輸入中的每個對應值。

OutputBiasGradient = sum(InputGradient)

Epsilon

類型: FLOAT

新增至變異數的小型值,以避免零。

備註

可用性

這個運算子是在 中 DML_FEATURE_LEVEL_3_1引進。

Tensor 條件約束

  • InputGradientTensor、InputTensorMeanTensorOutputBiasGradientTensorOutputGradientTensorOutputScaleGradientTensorScaleTensorVarianceTensor 必須具有相同的 DataTypeDimensionCount
  • MeanTensorOutputBiasGradientTensorOutputScaleGradientTensorScaleTensor 和 VarianceTensor 必須具有相同的大小
  • InputGradientTensorInputTensorOutputGradientTensor 必須具有相同 的大小

Tensor 支援

種類 維度 支援的維度計數 支援的資料類型
InputTensor 輸入 { InputDimensions[] } 1 到 8 FLOAT32,FLOAT16
InputGradientTensor 輸入 { InputDimensions[] } 1 到 8 FLOAT32,FLOAT16
MeanTensor 輸入 { MeanDimensions[] } 1 到 8 FLOAT32,FLOAT16
VarianceTensor 輸入 { MeanDimensions[] } 1 到 8 FLOAT32,FLOAT16
ScaleTensor 輸入 { MeanDimensions[] } 1 到 8 FLOAT32,FLOAT16
OutputGradientTensor 輸出 { InputDimensions[] } 1 到 8 FLOAT32,FLOAT16
OutputScaleGradientTensor 輸出 { MeanDimensions[] } 1 到 8 FLOAT32,FLOAT16
OutputBiasGradientTensor 輸出 { MeanDimensions[] } 1 到 8 FLOAT32,FLOAT16

規格需求

需求
最低支援的用戶端 Windows 組建 22000
最低支援的伺服器 Windows 組建 22000
標頭 directml.h