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_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 條件約束
InputTensor 和 OutputTensor 必須具有相同的 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 |