DML_CUMULATIVE_SUMMATION_OPERATOR_DESC struttura (directml.h)
Somma gli elementi di un tensore lungo un asse, scrivendo il conteggio in esecuzione della somma nel tensore di output.
Sintassi
struct DML_CUMULATIVE_SUMMATION_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT Axis;
DML_AXIS_DIRECTION AxisDirection;
BOOL HasExclusiveSum;
};
Members
InputTensor
Tipo: const DML_TENSOR_DESC*
Tensore di input contenente elementi da sommare.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Tensore di output in cui scrivere le summazioni cumulative risultanti. Questo tensore deve avere le stesse dimensioni e tipo di dati dell'oggetto InputTensor.
Axis
Tipo: UINT
Indice della dimensione su cui sommare gli elementi. Questo valore deve essere minore di DimensionCountdell'oggetto InputTensor.
AxisDirection
Tipo: DML_AXIS_DIRECTION
Uno dei valori dell'enumerazione DML_AXIS_DIRECTION . Se impostato su DML_AXIS_DIRECTION_INCREASING, la somma si verifica attraversando il tensore lungo l'asse specificato aumentando l'indice degli elementi. Se impostato su DML_AXIS_DIRECTION_DECREASING, il valore inverso è true e la somma si verifica attraversando gli elementi in base all'indice decrescente.
HasExclusiveSum
Tipo: BOOL
Se TRUE, il valore dell'elemento corrente viene escluso quando si scrive il conteggio in esecuzione nel tensore di output. Se FALSE, il valore dell'elemento corrente viene incluso nel conteggio in esecuzione.
Esempio
Gli esempi in questa sezione usano tutti un tensore di input con le proprietà seguenti.
InputTensor: (Sizes:{1,1,3,4}, DataType:FLOAT32)
[[[[2, 1, 3, 5],
[3, 8, 7, 3],
[9, 6, 2, 4]]]]
Esempio 1. Somma cumulativa tra sliver orizzontali
Axis: 3
AxisDirection: DML_AXIS_DIRECTION_INCREASING
HasExclusiveSum: FALSE
OutputTensor: (Sizes:{1,1,3,4}, DataType:FLOAT32)
[[[[2, 3, 6, 11], // i.e. [2, 2+1, 2+1+3, 2+1+3+5]
[3, 11, 18, 21], // [... ]
[9, 15, 17, 21]]]] // [... ]
Esempio 2. Somme esclusive
L'impostazione di HasExclusiveSum su TRUE ha l'effetto di escludere il valore dell'elemento corrente dal conteggio in esecuzione durante la scrittura nel tensore di output.
Axis: 3
AxisDirection: DML_AXIS_DIRECTION_INCREASING
HasExclusiveSum: TRUE
OutputTensor: (Sizes:{1,1,3,4}, DataType:FLOAT32)
[[[[0, 2, 3, 6], // Notice the sum is written before adding the input,
[0, 3, 11, 18], // and the final total is not written to any output.
[0, 9, 15, 17]]]]
Esempio 3. Direzione asse
L'impostazione di AxisDirection su DML_AXIS_DIRECTION_DECREASING ha effetto di inversione dell'ordine di attraversamento degli elementi durante il calcolo del conteggio in esecuzione.
Axis: 3
AxisDirection: DML_AXIS_DIRECTION_DECREASING
HasExclusiveSum: FALSE
OutputTensor: (Sizes:{1,1,3,4}, DataType:FLOAT32)
[[[[11, 9, 8, 5], // i.e. [2+1+3+5, 1+3+5, 3+5, 5]
[21, 18, 10, 3], // [... ]
[21, 12, 6, 4]]]] // [... ]
Esempio 4. Somma lungo un asse diverso
In questo esempio la somma si verifica verticalmente lungo l'asse di altezza (dimensione 2).
Axis: 2
AxisDirection: DML_AXIS_DIRECTION_INCREASING
HasExclusiveSum: FALSE
OutputTensor: (Sizes:{1,1,3,4}, DataType:FLOAT32)
[[[[ 2, 1, 3, 5], // i.e. [2, ...]
[ 5, 9, 10, 8], // [2+3, ...]
[14, 15, 12, 12]]]] // [2+3+9 ...]
Commenti
Questo operatore supporta l'esecuzione sul posto, ovvero l'outputTensor è consentito per aliasre inputTensor durante l'associazione.
Disponibilità
Questo operatore è stato introdotto in DML_FEATURE_LEVEL_2_1
.
Vincoli tensor
InputTensor e OutputTensor devono avere lo stesso oggetto DataType, DimensionCount e Sizes.
Supporto di Tensor
DML_FEATURE_LEVEL_5_0 e versioni successive
Tensore | Tipo | Conteggi delle dimensioni supportate | Tipi di dati supportati |
---|---|---|---|
InputTensor | Input | da 1 a 8 | FLOAT32, FLOAT16, INT64, INT32, UINT64, UINT32 |
OutputTensor | Output | da 1 a 8 | FLOAT32, FLOAT16, INT64, INT32, UINT64, UINT32 |
DML_FEATURE_LEVEL_4_0 e versioni successive
Tensore | Tipo | Conteggi delle dimensioni supportate | Tipi di dati supportati |
---|---|---|---|
InputTensor | Input | da 1 a 8 | FLOAT32, FLOAT16, INT32, UINT32 |
OutputTensor | Output | da 1 a 8 | FLOAT32, FLOAT16, INT32, UINT32 |
DML_FEATURE_LEVEL_2_1 e versioni successive
Tensore | Tipo | Conteggi delle dimensioni supportate | Tipi di dati supportati |
---|---|---|---|
InputTensor | Input | 4 | FLOAT32, FLOAT16, INT32, UINT32 |
OutputTensor | Output | 4 | FLOAT32, FLOAT16, INT32, UINT32 |
Requisiti
Client minimo supportato | Windows 10 Build 20348 |
Server minimo supportato | Windows 10 Build 20348 |
Intestazione | directml.h |