2021-12-21 20:26:37 +03:00
# Add {#openvino_docs_ops_arithmetic_Add_1}
2020-06-19 14:39:57 +03:00
2023-04-20 10:59:35 +02:00
@sphinxdirective
2020-06-19 14:39:57 +03:00
**Versioned name** : *Add-1*
2021-08-23 12:12:46 +02:00
**Category** : *Arithmetic binary*
2020-06-19 14:39:57 +03:00
2021-03-09 10:26:08 +01:00
**Short description** : *Add* performs element-wise addition operation with two given tensors applying broadcasting rule specified in the *auto_broacast* attribute.
**Detailed description**
2023-04-20 10:59:35 +02:00
Before performing arithmetic operation, input tensors *a* and *b* are broadcasted if their shapes are different and ``auto_broadcast`` attribute is not ``none``. Broadcasting is performed according to ``auto_broadcast`` value.
2021-03-09 10:26:08 +01:00
After broadcasting *Add* performs addition operation for the input tensors *a* and *b* using the formula below:
2023-04-20 10:59:35 +02:00
.. math::
o_{i} = a_{i} + b_{i}
2020-06-19 14:39:57 +03:00
**Attributes**:
* *auto_broadcast*
* **Description**: specifies rules used for auto-broadcasting of input tensors.
* **Range of values**:
2023-04-20 10:59:35 +02:00
2021-03-09 10:26:08 +01:00
* *none* - no auto-broadcasting is allowed, all input shapes must match,
2023-04-20 10:59:35 +02:00
* *numpy* - numpy broadcasting rules, description is available in :doc:` Broadcast Rules For Elementwise Operations <openvino_docs_ops_broadcast_rules>`,
* *pdpd* - PaddlePaddle-style implicit broadcasting, description is available in :doc:` Broadcast Rules For Elementwise Operations <openvino_docs_ops_broadcast_rules>`.
2020-06-19 14:39:57 +03:00
* **Type**: string
* **Default value**: "numpy"
* **Required**: *no*
**Inputs**
2021-07-02 12:51:00 +02:00
* **1**: A tensor of type *T* and arbitrary shape and rank. **Required.**
* **2**: A tensor of type *T* and arbitrary shape and rank. **Required.**
2020-06-19 14:39:57 +03:00
**Outputs**
2021-07-02 12:51:00 +02:00
* **1**: The result of element-wise addition operation. A tensor of type *T* with shape equal to broadcasted shape of the two inputs.
2020-06-19 14:39:57 +03:00
**Types**
* *T*: any numeric type.
**Examples**
*Example 1*
2023-04-20 10:59:35 +02:00
.. code-block:: console
<layer ... type="Add">
<data auto_broadcast="none"/>
<input>
<port id="0">
<dim>256</dim>
<dim>56</dim>
</port>
<port id="1">
<dim>256</dim>
<dim>56</dim>
</port>
</input>
<output>
<port id="2">
<dim>256</dim>
<dim>56</dim>
</port>
</output>
</layer>
2020-06-19 14:39:57 +03:00
*Example 2: broadcast*
2023-04-20 10:59:35 +02:00
.. code-block:: console
<layer ... type="Add">
<data auto_broadcast="numpy"/>
<input>
<port id="0">
<dim>8</dim>
<dim>1</dim>
<dim>6</dim>
<dim>1</dim>
</port>
<port id="1">
<dim>7</dim>
<dim>1</dim>
<dim>5</dim>
</port>
</input>
<output>
<port id="2">
<dim>8</dim>
<dim>7</dim>
<dim>6</dim>
<dim>5</dim>
</port>
</output>
</layer>
@endsphinxdirective