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 條件約束
- InputTensor 和 OutputTensor 必須具有相同 的大小。
- BiasTensor、 InputTensor、 OutputTensor和 ScaleTensor 必須具有相同 的 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 |