DML_ACTIVATION_HARDMAX1_OPERATOR_DESC 構造体 (directml.h)
InputTensor の各要素に対してハードマックス関数を実行し、OutputTensor の対応する要素に結果を配置します。
演算子は、指定された入力の各要素のハードマックス (指定した軸に沿った最初の最大値は 1、その他のすべての値は 0) を計算します。
reducedTensor = ReduceArgMax(InputTensor, axes = Axes, axisDirection = DML_AXIS_DIRECTION_INCREASING)
broadcastedTensor = Broadcast the `reducedTensor` to `InputTensor`
for each coordinate in OutputTensor
if broadcastedTensor[coordinate] == reducedIndexOf(coordinate) // reducedIndexOf(coordinate) is the index of the coordinate within reduced axes `axes`.
OutputTensor[coordinate] = 1
else
OutputTensor[coordinate] = 0
endfor
ReduceArgMax(input = InputTensor, axis = Axes) が DML_REDUCE_OPERATOR で、reduce 関数が DML_REDUCE_FUNCTION_ARGMAX の場合。
重要
この API は、DirectML スタンドアロン再頒布可能パッケージの一部として使用できます (Microsoft.AI.DirectML バージョン 1.9 以降を参照してください)。 DirectML バージョン履歴も参照してください。
構文
struct DML_ACTIVATION_HARDMAX1_OPERATOR_DESC
{
const DML_TENSOR_DESC* InputTensor;
const DML_TENSOR_DESC* OutputTensor;
UINT AxisCount;
_Field_size_(AxisCount) const UINT* Axes;
};
メンバー
InputTensor
型: const DML_TENSOR_DESC*
読み込み元の入力テンソル。
OutputTensor
型: const DML_TENSOR_DESC*
結果を書き込む先の出力テンソル。
AxisCount
型: UINT
ハードマックスを減らす計算をする軸の数。 このフィールドは、Axes 配列のサイズを決定します。
Axes
型: _Field_size_(AxisCount) const UINT*
ハードマックスを減らす軸。 値は [0, InputTensor.DimensionCount - 1]
の範囲内にする必要があります。
例
次の例では、すべて同じ 3 次元入力テンソルを使用しています。
InputTensor: (Sizes:{2, 2, 2}, DataType:FLOAT32)
[
[
[ 12, 0],
[-101, 11],
],
[
[ 3, 234],
[ 0, -101],
]
]
例 1
AxisCount: 1
Axes: {1}
OutputTensor: (Sizes:{2, 2, 2}, DataType:FLOAT32)
[
[ // max element in {12, -101} is 12 and in {0, 11} is 11
[1, 0],
[0, 1],
],
[ // max element in {3, 0} is 3 and in {234, -101} is 234
[1, 1],
[0, 0],
]
]
例 2
AxisCount: 1
Axes: {0}
OutputTensor: (Sizes:{2, 2, 2}, DataType:FLOAT32)
[
[ // max element in {12, 3} is 12, in {0, 234} is 234, in {-101, 0} is 0 and in {11, -101} is 11
[1, 0],
[0, 1],
],
[
[0, 1],
[1, 0],
]
]
例 3
AxisCount: 2
Axes: {0, 2}
OutputTensor: (Sizes:{2, 2, 2}, DataType:FLOAT32)
[
[ // max element in {12, 0, 3, 234} is 234 and in {-101, 11, 0, -101} is 11
[0, 0],
[0, 1],
],
[
[0, 1],
[0, 0],
]
]
解説
この演算子は、AxisCount == 1、および Axes == {DimensionCount - 1}
の場合の DML_ACTIVATION_HARDMAX_OPERATOR_DESC に相当します。
可用性
この演算子は、DML_FEATURE_LEVEL_5_1 で導入されました。
Tensor 制約
InputTensor と OutputTensor には、同じ DataType、DimensionCount、およびサイズが必要です。
Tensor のサポート
Tensor | 種類 | サポートされているディメンション数 | サポートされるデータ型 |
---|---|---|---|
InputTensor | 入力 | 1 から 8 | FLOAT32、FLOAT16 |
OutputTensor | 出力 | 1 から 8 | FLOAT32、FLOAT16 |
要件
ヘッダー | directml.h |