Concat

Concat  // Concatenation operation

Description

Produce from Nodes of args some outputs with the same attributes

Inputs

Name

Type

Notes

args

Nodes

All element types the same. All shapes the same except on concatenation_axis

Attributes

Name

Notes

concatenation_axis

Less than the rank of the shape

Outputs

Name

Element Type

Shape

output

Same as args | Same as arg on non-concatenation_axis
Sum of concatenation_axis lengths of args

Mathematical Definition

We map each tensor in args to a segment of output based on the coordinate at coordinate_axis.

Let

\[\begin{split}s(i) &= \sum_{j<i} \mathtt{args}[i].\mathtt{shape}\left[\mathtt{concatenation_axis}\right]\\ t(i) &= \text{The greatest }j\text{ such that }i \ge s(j)\\ p(C)_i &= \begin{cases} C_i-s(t(i))&\text{if }i==\mathtt{concatenation_axis}\\ C_i&\text{otherwise} \end{cases}\\ \mathtt{output}_C&=\mathtt{args}[t(C_i)]_{p(C)}\end{split}\]

Backprop

We slice the backprop value into the backprops associated with the inputs.

C++ Interface

Warning

doxygenclass: Cannot find class “ngraph::op::v0::Concat” in doxygen xml output for project “ngraph” from directory: ../../doxygen/xml