在輸入上執行批次正規化。 此運算符會執行下列計算: Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias + FusedAdd)。
ScaleTensor 和 BiasTensor 中的任何維度都可以設定為 1,而且會自動廣播以符合 InputTensor,但否則必須等於 InputTensor 的對應維度大小。 MeanTensor 和 VarianceTensor 會在 ScaleTensor 和 BiasTensor 大小等於一的維度集合上計算輸入。
語法
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*
包含 Scale 資料的張量。
BiasTensor
類型: const DML_TENSOR_DESC*
包含偏差數據的張量。
FusedAddTensor
類型: _Maybenull_ const DML_TENSOR_DESC*
選擇性的張量,其中包含在 FusedActivation 之前新增至結果的數據,如果有的話。
OutputTensor
類型: const DML_TENSOR_DESC*
要寫入結果的張量。
OutputMeanTensor
類型: const DML_TENSOR_DESC*
要寫入輸入平均值的 Tensor。
OutputVarianceTensor
類型: const DML_TENSOR_DESC*
要寫入輸入變異數的 Tensor。
Epsilon
類型: FLOAT
要用來避免除以零的 epsilon 值。
FusedActivation
類型:_Maybenull_ const DML_OPERATOR_DESC*
要在正規化之後套用的選擇性融合啟用層。 如需詳細資訊,請參閱 使用 fused 運算子改善效能。
備註
可用性
這個運算子是在 中 DML_FEATURE_LEVEL_4_1引進的。
Tensor 條件約束
- BiasTensor、 FusedAddTensor、 InputTensor、 OutputMeanTensor、 OutputTensor、 OutputVarianceTensor 和 ScaleTensor 必須具有相同 的 DataType 和 DimensionCount。
- BiasTensor、 OutputMeanTensor、 OutputVarianceTensor 和 ScaleTensor 必須具有相同 的大小。
- FusedAddTensor、 InputTensor 和 OutputTensor 必須具有相同 的大小。
Tensor 支援
DML_FEATURE_LEVEL_4_1和更新版本
| 張 | 種類 | 維度 | 支援的維度計數 | 支援的資料類型 |
|---|---|---|---|---|
| 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 |