共用方式為


DML_ARGMIN_OPERATOR_DESC 結構 (directml.h)

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

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

語法

struct DML_ARGMIN_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 之元素子集的自變數縮減結果。

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

AxisCount

類型: UINT

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

Axes

類型:_Field_size_ (AxisCount) const UINT*

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

AxisDirection

DML_AXIS_DIRECTION AxisDirection;

類型: DML_AXIS_DIRECTION

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

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

範例

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

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

範例 1. 將 argmin 套用至數據行

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

範例 2. 將 argmin 套用至數據列

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

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

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

備註

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

AxisDirectionDML_AXIS_DIRECTION_INCREASING時,此 API 相當於使用 DML_REDUCE_FUNCTION_ARGMIN 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