共用方式為


DML_REDUCE_OPERATOR_DESC結構 (directml.h)

輸出 (總和、乘積、最小值等項目的縮減,) 輸入張量中的一或多個維度內。

每個輸出元素都是在輸入張量子集上套用縮減函式的結果。 縮減函式,例如 sum,會將輸入元素對應 N 至單一輸出元素。 每個縮減所涉及的輸入元素是由提供的輸入軸所決定: N 等於縮減座標軸大小的乘積。 如果指定了所有輸入軸,運算子就會在整個輸入張量上執行縮減,併產生單一輸出元素。

語法

struct DML_REDUCE_OPERATOR_DESC {
  DML_REDUCE_FUNCTION   Function;
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *OutputTensor;
  UINT                  AxisCount;
  const UINT            *Axes;
};

成員

Function

類型: DML_REDUCE_FUNCTION

指定要套用至輸入的縮減函式。

InputTensor

類型: const DML_TENSOR_DESC*

要從中讀取的張量。

OutputTensor

類型: const DML_TENSOR_DESC*

要寫入結果的張量。 每個輸出元素都是從 InputTensor 減少元素子集的結果。

  • DimensionCount 必須符合 InputTensor.DimensionCount , (輸入張量的排名會保留) 。
  • 大小 必須符合 InputTensor.Size,但縮減 的 Axes 中包含的維度必須是大小 1。

AxisCount

類型: UINT

要減少的座標軸數目。 此欄位會決定 Axes 陣列的大小。

Axes

類型:_Field_size_ (AxisCount) const UINT*

要減少的軸。 值必須位於範圍 [0, InputTensor.DimensionCount - 1]中。

範例

下列範例全都使用相同的二維輸入張量。

InputTensor: (Sizes:{3, 3}, DataType:FLOAT32)
[[1, 2, 3],
 [3, 0, 4],
 [2, 4, 2]]

範例 1. 將 總和套 用至數據行

Function: DML_REDUCE_FUNCTION_SUM
AxisCount: 1
Axes: {0}
OutputTensor: (Sizes:{1, 3}, DataType:FLOAT32)
[[6,  // sum({1, 3, 2})
  6,  // sum({2, 0, 4})
  9]] // sum({3, 4, 2})

範例 2. 將 總和 套用至數據列

Function: DML_REDUCE_FUNCTION_SUM
AxisCount: 1
Axes: {1}
OutputTensor: (Sizes:{3, 1}, DataType:FLOAT32)
[[6], // sum({1, 2, 3})
 [7], // sum({3, 0, 4})
 [8]] // sum({2, 4, 2})

範例 3.將 總和 套用至整個張量 (的所有軸)

Function: DML_REDUCE_FUNCTION_SUM
AxisCount: 2
Axes: {0, 1}
OutputTensor: (Sizes:{1, 1}, DataType:FLOAT32)
[[21]]  // sum({1, 2, 3, 3, 0, 4, 2, 5, 2})

可用性

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

Tensor 條件約束

  • 除了使用 ARGMAX 和 ARGMIN 函式時,輸入和輸出張量數據類型必須相符,這一律會輸出整數數據類型。
  • 輸出大小必須與輸入大小相同,但縮減的座標軸必須是 1。

根據函式支援 Tensor

ARGMIN 和 ARGMAX

DML_FEATURE_LEVEL_4_1和更新版本
種類 支援的維度計數 支援的資料類型
InputTensor 輸入 1 到 8 FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8
OutputTensor 輸出 1 到 8 INT64、INT32、UINT64、UINT32

DML_FEATURE_LEVEL_3_0和更新版本

種類 支援的維度計數 支援的資料類型
InputTensor 輸入 1 到 8 FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8
OutputTensor 輸出 1 到 8 INT64、INT32、UINT64、UINT32

DML_FEATURE_LEVEL_2_1和更新版本

種類 支援的維度計數 支援的資料類型
InputTensor 輸入 4 FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8
OutputTensor 輸出 4 UINT32

DML_FEATURE_LEVEL_1_0和更新版本

種類 支援的維度計數 支援的資料類型
InputTensor 輸入 4 FLOAT32,FLOAT16
OutputTensor 輸出 4 UINT32

AVERAGE、L2、LOG_SUM 和 LOG_SUM_EXP

DML_FEATURE_LEVEL_3_0和更新版本
種類 支援的維度計數 支援的資料類型
InputTensor 輸入 1 到 8 FLOAT32,FLOAT16
OutputTensor 輸出 1 到 8 FLOAT32,FLOAT16
DML_FEATURE_LEVEL_1_0和更新版本
種類 支援的維度計數 支援的資料類型
InputTensor 輸入 4 FLOAT32,FLOAT16
OutputTensor 輸出 4 FLOAT32,FLOAT16

L1 和 SUM_SQUARE

DML_FEATURE_LEVEL_5_0和更新版本
種類 支援的維度計數 支援的資料類型
InputTensor 輸入 1 到 8 FLOAT32、FLOAT16、INT64、INT32、UINT64、UINT32
OutputTensor 輸出 1 到 8 FLOAT32、FLOAT16、INT64、INT32、UINT64、UINT32

DML_FEATURE_LEVEL_3_0和更新版本

種類 支援的維度計數 支援的資料類型
InputTensor 輸入 1 到 8 FLOAT32,FLOAT16
OutputTensor 輸出 1 到 8 FLOAT32,FLOAT16

DML_FEATURE_LEVEL_1_0和更新版本

種類 支援的維度計數 支援的資料類型
InputTensor 輸入 4 FLOAT32,FLOAT16
OutputTensor 輸出 4 FLOAT32,FLOAT16

MIN 和 MAX

DML_FEATURE_LEVEL_5_0和更新版本
種類 支援的維度計數 支援的資料類型
InputTensor 輸入 1 到 8 FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8
OutputTensor 輸出 1 到 8 FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8

DML_FEATURE_LEVEL_3_0和更新版本

種類 支援的維度計數 支援的資料類型
InputTensor 輸入 1 到 8 FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8
OutputTensor 輸出 1 到 8 FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8

DML_FEATURE_LEVEL_2_1和更新版本

種類 支援的維度計數 支援的資料類型
InputTensor 輸入 4 FLOAT32、FLOAT16、INT32、UINT32
OutputTensor 輸出 4 FLOAT32、FLOAT16、INT32、UINT32

DML_FEATURE_LEVEL_1_0和更新版本

種類 支援的維度計數 支援的資料類型
InputTensor 輸入 4 FLOAT32,FLOAT16
OutputTensor 輸出 4 FLOAT32,FLOAT16

MULTIPLY 和 SUM

DML_FEATURE_LEVEL_5_0和更新版本
種類 支援的維度計數 支援的資料類型
InputTensor 輸入 1 到 8 FLOAT32、FLOAT16、INT64、INT32、UINT64、UINT32
OutputTensor 輸出 1 到 8 FLOAT32、FLOAT16、INT64、INT32、UINT64、UINT32

DML_FEATURE_LEVEL_3_0和更新版本

種類 支援的維度計數 支援的資料類型
InputTensor 輸入 1 到 8 FLOAT32、FLOAT16、INT32、UINT32
OutputTensor 輸出 1 到 8 FLOAT32、FLOAT16、INT32、UINT32

DML_FEATURE_LEVEL_2_1和更新版本

種類 支援的維度計數 支援的資料類型
InputTensor 輸入 4 FLOAT32、FLOAT16、INT32、UINT32
OutputTensor 輸出 4 FLOAT32、FLOAT16、INT32、UINT32

DML_FEATURE_LEVEL_1_0和更新版本

種類 支援的維度計數 支援的資料類型
InputTensor 輸入 4 FLOAT32,FLOAT16
OutputTensor 輸出 4 FLOAT32,FLOAT16

規格需求

需求
標頭 directml.h

另請參閱

功能層級 3_0 引進了這些獨立運算符,可取代 DML_REDUCE_FUNCTION_ARGMAXDML_REDUCE_FUNCTION_ARGMIN所提供的功能。