CumSum
Versioned name: CumSum-3
Category: Arithmetic unary operation
Short description: CumSum performs cumulative summation of the input elements along the given axis.
Detailed description: By default, it will do the sum inclusively meaning the first element is copied as is. Through an "exclusive" attribute, this behavior can change to exclude the first element. It can also perform summation in the opposite direction of the axis. For that, set reverse attribute to true.
Attributes:
-
exclusive
-
Description: If the attribute is set to
truethen an exclusive sum in which the top element is not included is returned. In other terms, if set totrue, thej-thoutput element would be the sum of the first(j-1)elements. Otherwise, it would be the sum of the firstjelements. - Range of values:
false- include the top elementtrue- do not include the top element
- Type:
boolean - Default value:
false -
Required: no
-
reverse
-
Description: If set to
truewill perform the sums in reverse direction. - Range of values:
false- do not perform sums in reverse directiontrue- perform sums in reverse direction
- Type:
boolean - Default value:
false - Required: no
Inputs
-
1: An tensor of type T. Required.
-
2: Scalar axis of type T_AXIS. Negative value means counting dimensions from the back. Default value is 0. Optional.
Outputs
- 1: Output tensor with cumulative sums of the input's elements. A tensor of type T of the same shape as 1st input.
Types
-
T: any numeric type.
-
T_AXIS: any integer number.
Examples
Example 1
<layer ... type="CumSum" exclusive="0" reverse="0">
<input>
<port id="0"> <!-- input value is: [1., 2., 3., 4., 5.] -->
<dim>5</dim>
</port>
<port id="1"/> <!-- axis value is: 0 -->
</input>
<output>
<port id="2"> <!-- output value is: [1., 3., 6., 10., 15.] -->
<dim>5</dim>
</port>
</output>
</layer>
Example 2
<layer ... type="CumSum" exclusive="1" reverse="0">
<input>
<port id="0"> <!-- input value is: [1., 2., 3., 4., 5.] -->
<dim>5</dim>
</port>
<port id="1"/> <!-- axis value is: 0 -->
</input>
<output>
<port id="2"> <!-- output value is: [0., 1., 3., 6., 10.] -->
<dim>5</dim>
</port>
</output>
</layer>
Example 3
<layer ... type="CumSum" exclusive="0" reverse="1">
<input>
<port id="0"> <!-- input value is: [1., 2., 3., 4., 5.] -->
<dim>5</dim>
</port>
<port id="1"/> <!-- axis value is: 0 -->
</input>
<output>
<port id="2"> <!-- output value is: [15., 14., 12., 9., 5.] -->
<dim>5</dim>
</port>
</output>
</layer>
Example 4
<layer ... type="CumSum" exclusive="1" reverse="1">
<input>
<port id="0"> <!-- input value is: [1., 2., 3., 4., 5.] -->
<dim>5</dim>
</port>
<port id="1"/> <!-- axis value is: 0 -->
</input>
<output>
<port id="2"> <!-- output value is: [14., 12., 9., 5., 0.] -->
<dim>5</dim>
</port>
</output>
</layer>