共用方式為


DML_ARGMAX_OPERATOR_DESC結構 (directml.h)

輸出輸入張量之一或多個維度內最大值元素的索引。

每個輸出元素都是在輸入張量子集上套用 argmax 縮減的結果。 argmax函式會輸出一組輸入專案內最大值專案的索引。 每個縮減所涉及的輸入元素是由提供的輸入軸所決定。 同樣地,每個輸出索引都與提供的輸入軸有關。 如果指定了所有輸入軸,運算子就會套用單一 argmax 縮減,並產生單一輸出元素。

語法

struct DML_ARGMAX_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *OutputTensor;
  UINT                  AxisCount;
  const UINT            *Axes;
  DML_AXIS_DIRECTION    AxisDirection;
};

成員

InputTensor

類型:const DML_TENSOR_DESC*

要從中讀取的張量。

OutputTensor

類型:const DML_TENSOR_DESC*

要寫入結果的張量。 每個輸出元素都是來自 InputTensor之元素子集的argmax縮減結果。

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

AxisCount

類型: UINT

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

Axes

類型:_Field_size_ (AxisCount) const UINT*

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

AxisDirection

類型: DML_AXIS_DIRECTION

決定當多個輸入元素具有相同值時要選取的索引。

  • 例如,DML_AXIS_DIRECTION_INCREASING傳回第一個最大值元素 (的索引,例如) argmax({3,2,1,2,3}) = 0
  • 例如,DML_AXIS_DIRECTION_DECREASING會傳回最後一個最大值專案 (的索引,例如) argmax({3,2,1,2,3}) = 4

範例

本節中的範例全都使用相同的二維輸入張量。

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

範例 1. 將 argmax 套用至資料行

AxisCount: 1
Axes: {0}
AxisDirection: DML_AXIS_DIRECTION_INCREASING
OutputTensor: (Sizes:{1, 3}, DataType:UINT32)
[[1,  // argmax({1, 3, 2})
  2,  // argmax({2, 0, 5})
  1]] // argmax({3, 4, 2})

範例 2. 將 argmax 套用至資料列

AxisCount: 1
Axes: {1}
AxisDirection: DML_AXIS_DIRECTION_INCREASING
OutputTensor: (Sizes:{3, 1}, DataType:UINT32)
[[2], // argmax({1, 2, 3})
 [2], // argmax({3, 0, 4})
 [1]] // argmax({2, 5, 2})

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

AxisCount: 2
Axes: {0, 1}
AxisDirection: DML_AXIS_DIRECTION_INCREASING
OutputTensor: (Sizes:{1, 1}, DataType:UINT32)
[[7]]  // argmax({1, 2, 3, 3, 0, 4, 2, 5, 2})

備註

輸出張量大小必須與輸入張量大小相同,但縮減的軸必須為 1。

AxisDirectionDML_AXIS_DIRECTION_INCREASING時,此 API 相當於使用 DML_REDUCE_FUNCTION_ARGMAX DML_REDUCE_OPERATOR_DESC

此功能的子集會透過 DML_REDUCE_OPERATOR_DESC 運算子公開,而且在先前的 DirectML 功能層級上受到支援。

可用性

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

Tensor 條件約束

InputTensorOutputTensor 必須具有相同的 DimensionCount

Tensor 支援

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

需求

   
最低支援的用戶端 Windows 10組建 20348
最低支援的伺服器 Windows 10組建 20348
標頭 directml.h