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

class Concat : public ngraph::op::Op

Concatenation operation.

Public Functions

const NodeTypeInfo &get_type_info() const

Returns the NodeTypeInfo for the node’s class. During transition to type_info, returns a dummy type_info for Node if the class has not been updated yet.

Concat()

Constructs a concatenation operation.

Concat(const OutputVector &args, size_t axis)

Constructs a concatenation operation.

Parameters
  • args: The outputs producing the input tensors.
  • axis: The axis along which to concatenate the input tensors.

Concat(const NodeVector &args, size_t axis)

Constructs a concatenation operation.

Parameters
  • args: The nodes producing the input tensors.
  • axis: The axis along which to concatenate the input tensors.

void validate_and_infer_types()

Throws if the node is invalid.

size_t get_concatenation_axis() const

Return
The concatenation axis.

size_t get_axis() const

Return
The concatenation axis.