Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Utför en hardmax-funktion på varje element i InputTensor och placerar resultatet i motsvarande element i OutputTensor.
Operatorn beräknar hardmax (1 för det första maximala värdet längs de angivna axlarna och 0 för alla andra värden) för varje element i de angivna indata.
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
Där ReduceArgMax(input = InputTensor, axis = Axes) är DML_REDUCE_OPERATOR med DML_REDUCE_FUNCTION_ARGMAX som en reduce-funktion.
Viktigt!
Det här API:et är tillgängligt som en del av det fristående DirectML-omdistribuerbara paketet (se Microsoft.AI.DirectML version 1.9 och senare. Se även DirectML-versionshistorik.
Syntax
struct DML_ACTIVATION_HARDMAX1_OPERATOR_DESC
{
const DML_TENSOR_DESC* InputTensor;
const DML_TENSOR_DESC* OutputTensor;
UINT AxisCount;
_Field_size_(AxisCount) const UINT* Axes;
};
Medlemmar
InputTensor
Den indata tensor som ska läsas från.
OutputTensor
Den utdata tensor som resultatet ska skrivas till.
AxisCount
Typ: UINT
Antalet axlar som ska beräknas minskar hardmax. Det här fältet avgör storleken på matrisen Axlar .
Axes
Typ: _Field_size_(AxisCount) const UINT*
Axlarna längs som för att minska hardmax. Värdena måste ligga i intervallet [0, InputTensor.DimensionCount - 1].
Exempel
I följande exempel används samma tredimensionella indata tensor:
InputTensor: (Sizes:{2, 2, 2}, DataType:FLOAT32)
[
[
[ 12, 0],
[-101, 11],
],
[
[ 3, 234],
[ 0, -101],
]
]
Exempel 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],
]
]
Exempel 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],
]
]
Exempel 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],
]
]
Anmärkningar
Den här operatorn motsvarar DML_ACTIVATION_HARDMAX_OPERATOR_DESC när AxisCount == 1 och Axlar == {DimensionCount - 1}.
Tillgänglighet
Den här operatorn introducerades i DML_FEATURE_LEVEL_5_1.
Tensor-begränsningar
InputTensor och OutputTensor måste ha samma DataType, DimensionCount och Storlekar.
Tensor-stöd
| Tensor | Typ | Dimensionsantal som stöds | Datatyper som stöds |
|---|---|---|---|
| InputTensor (på engelska) | Inmatning | 1 till 8 | FLOAT32, FLOAT16 |
| OutputTensor (på engelska) | Utgång | 1 till 8 | FLOAT32, FLOAT16 |
Kravspecifikation
| Rubrik | directml.h |