SquaredDifference operation specification refactoring. (#4567)
* SquaredDifference operation specification refactoring. * Add dummy broadcast_rules.md. * Minor fixes, e.g. capitalize operation names, typos. Co-authored-by: Szymon Durawa <szymon.durawa@intel.com>
This commit is contained in:
parent
dcc8215784
commit
4791f3bfd7
@ -4,7 +4,14 @@
|
|||||||
|
|
||||||
**Category**: Arithmetic binary operation
|
**Category**: Arithmetic binary operation
|
||||||
|
|
||||||
**Short description**: *SquaredDifference* performs element-wise subtraction operation with two given tensors applying multi-directional broadcast rules, after that each result of the subtraction is squared.
|
**Short description**: *SquaredDifference* performs element-wise subtract and square the result operation with two given tensors applying broadcasting rule specified in the *auto_broadcast* attribute.
|
||||||
|
|
||||||
|
**Detailed description**
|
||||||
|
As a first step input tensors *a* and *b* are broadcasted if their shapes differ. Broadcasting is performed according to `auto_broadcast` attribute specification. As a second step *Substract* and *Square* the result operation is computed element-wise on the input tensors *a* and *b* according to the formula below:
|
||||||
|
|
||||||
|
\f[
|
||||||
|
o_{i} = (a_{i} - b_{i})^2
|
||||||
|
\f]
|
||||||
|
|
||||||
**Attributes**:
|
**Attributes**:
|
||||||
|
|
||||||
@ -12,40 +19,32 @@
|
|||||||
|
|
||||||
* **Description**: specifies rules used for auto-broadcasting of input tensors.
|
* **Description**: specifies rules used for auto-broadcasting of input tensors.
|
||||||
* **Range of values**:
|
* **Range of values**:
|
||||||
* *none* - no auto-broadcasting is allowed, all input shapes should match
|
* *none* - no auto-broadcasting is allowed, all input shapes must match
|
||||||
* *numpy* - numpy broadcasting rules, aligned with ONNX Broadcasting. Description is available in <a href="https://github.com/onnx/onnx/blob/master/docs/Broadcasting.md">ONNX docs</a>.
|
* *numpy* - numpy broadcasting rules, description is available in [Broadcast Rules For Elementwise Operations](../broadcast_rules.md)
|
||||||
* **Type**: string
|
* **Type**: string
|
||||||
* **Default value**: "numpy"
|
* **Default value**: "numpy"
|
||||||
* **Required**: *no*
|
* **Required**: *no*
|
||||||
|
|
||||||
**Inputs**
|
**Inputs**
|
||||||
|
|
||||||
* **1**: A tensor of type T. **Required.**
|
* **1**: A tensor of type T and arbitrary shape. Required.
|
||||||
* **2**: A tensor of type T. **Required.**
|
* **2**: A tensor of type T and arbitrary shape. Required.
|
||||||
|
|
||||||
**Outputs**
|
**Outputs**
|
||||||
|
|
||||||
* **1**: The result of element-wise SquaredDifference operation. A tensor of type T.
|
* **1**: The result of element-wise subtract and square the result operation. A tensor of type T with shape equal to broadcasted shape of two inputs.
|
||||||
|
|
||||||
**Types**
|
**Types**
|
||||||
|
|
||||||
* *T*: any numeric type.
|
* *T*: any numeric type.
|
||||||
|
|
||||||
**Detailed description**
|
|
||||||
Before performing arithmetic operation, input tensors *a* and *b* are broadcasted if their shapes are different and `auto_broadcast` attributes is not `none`. Broadcasting is performed according to `auto_broadcast` value.
|
|
||||||
|
|
||||||
After broadcasting *SquaredDifference* does the following with the input tensors *a* and *b*:
|
|
||||||
|
|
||||||
\f[
|
|
||||||
o_{i} = (a_{i} - b_{i})^2
|
|
||||||
\f]
|
|
||||||
|
|
||||||
**Examples**
|
**Examples**
|
||||||
|
|
||||||
*Example 1*
|
*Example 1 - no broadcasting*
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
<layer ... type="SquaredDifference">
|
<layer ... type="SquaredDifference">
|
||||||
|
<data auto_broadcast="none"/>
|
||||||
<input>
|
<input>
|
||||||
<port id="0">
|
<port id="0">
|
||||||
<dim>256</dim>
|
<dim>256</dim>
|
||||||
@ -64,9 +63,10 @@ o_{i} = (a_{i} - b_{i})^2
|
|||||||
</output>
|
</output>
|
||||||
</layer>
|
</layer>
|
||||||
```
|
```
|
||||||
*Example 2: broadcast*
|
*Example 2: numpy broadcasting*
|
||||||
```xml
|
```xml
|
||||||
<layer ... type="SquaredDifference">
|
<layer ... type="SquaredDifference">
|
||||||
|
<data auto_broadcast="numpy"/>
|
||||||
<input>
|
<input>
|
||||||
<port id="0">
|
<port id="0">
|
||||||
<dim>8</dim>
|
<dim>8</dim>
|
||||||
|
Loading…
Reference in New Issue
Block a user