共用方式為


DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC 結構 (directml.h)

在輸入張量上執行平均變異數正規化函式。 這個運算子會計算輸入張量的平均數和變異數,以執行正規化。 這個運算子會執行下列計算。

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

語法

struct DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC {
  const DML_TENSOR_DESC   *InputTensor;
  const DML_TENSOR_DESC   *ScaleTensor;
  const DML_TENSOR_DESC   *BiasTensor;
  const DML_TENSOR_DESC   *OutputTensor;
  BOOL                    CrossChannel;
  BOOL                    NormalizeVariance;
  FLOAT                   Epsilon;
  const DML_OPERATOR_DESC *FusedActivation;
};

成員

InputTensor

類型:const DML_TENSOR_DESC*

包含輸入資料的張量。 這個張量維度應該是 { BatchCount, ChannelCount, Height, Width }

ScaleTensor

類型:_Maybenull_ const DML_TENSOR_DESC*

包含 Scale 資料的選擇性張量。 這個張量維度應該是 { BatchCount, ChannelCount, Height, Width } 。 任何維度都可以取代為 1,以在該維度中廣播。 如果 DML_FEATURE_LEVEL 小於 DML_FEATURE_LEVEL_5_2,則 如果 BiasTensor 存在,則需要此張量。 如果 DML_FEATURE_LEVEL 大於或等於 DML_FEATURE_LEVEL_5_2,則不論 BiasTensor的值為何,此張量都可以是 null。

BiasTensor

類型:_Maybenull_ const DML_TENSOR_DESC*

包含偏差資料的選擇性張量。 這個張量維度應該是 { BatchCount, ChannelCount, Height, Width } 。 任何維度都可以取代為 1,以在該維度中廣播。 如果 DML_FEATURE_LEVEL 小於 DML_FEATURE_LEVEL_5_2,則如果 ScaleTensor 存在,則需要此張量。 如果 DML_FEATURE_LEVEL 大於或等於 DML_FEATURE_LEVEL_5_2,則不論 ScaleTensor的值為何,此張量都可以是 null。

OutputTensor

類型:const DML_TENSOR_DESC*

要寫入結果的張量。 此張量維度為 { BatchCount, ChannelCount, Height, Width }

CrossChannel

類型: BOOL

為 TRUE時,MeanVariance 層會在平均和變異數計算中包含通道,這表示它們會跨軸 {ChannelCount, Height, Width} 正規化。 當 為 FALSE時,平均數和變異數計算會跨軸 {Height, Width} 正規化,且每個通道都是獨立的。

NormalizeVariance

類型: BOOL

如果正規化層包含正規化計算中的變異數,則為TRUE。 否則為 FALSE。 如果 為 FALSE,則正規化方程式為 Output = FusedActivation(Scale * (Input - Mean) + Bias)

Epsilon

類型: FLOAT

要用來避免除以零的 epsilon 值。 建議使用預設值為 0.00001 的值。

FusedActivation

類型:_Maybenull_ const DML_OPERATOR_DESC*

正規化之後要套用的選擇性融合啟用層。 如需詳細資訊,請參閱 使用融合運算子來改善效能

備註

在 中 DML_FEATURE_LEVEL_2_1 引進了較新版本的這個運算子DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC

可用性

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

Tensor 條件約束

  • InputTensorOutputTensor 必須具有相同 的大小
  • BiasTensorInputTensorOutputTensorScaleTensor 必須具有相同 的 DataType

Tensor 支援

種類 維度 支援的維度計數 支援的資料類型
InputTensor 輸入 { BatchCount, ChannelCount, Height, Width } 4 FLOAT32,FLOAT16
ScaleTensor 選擇性輸入 { ScaleBatchCount, ScaleChannelCount, ScaleHeight, ScaleWidth } 4 FLOAT32,FLOAT16
BiasTensor 選擇性輸入 { BiasBatchCount, BiasChannelCount, BiasHeight, BiasWidth } 4 FLOAT32,FLOAT16
OutputTensor 輸出 { BatchCount, ChannelCount, Height, Width } 4 FLOAT32,FLOAT16

規格需求

   
標頭 directml.h

另請參閱