diff --git a/docs/ops/activation/Clamp_1.md b/docs/ops/activation/Clamp_1.md
index b391371f2d4..728ce18a6b0 100644
--- a/docs/ops/activation/Clamp_1.md
+++ b/docs/ops/activation/Clamp_1.md
@@ -36,7 +36,7 @@ clamp( x_{i} )=\min\big( \max\left( x_{i}, min\_value \right), max\_value \big)
**Inputs**:
-* **1**: A tensor of type *T* and arbitrary shape. **Required**.
+* **1**: A tensor of type *T* and arbitrary shape. **Required.**
**Outputs**:
diff --git a/docs/ops/activation/Elu_1.md b/docs/ops/activation/Elu_1.md
index 7635e62ce54..50537dc6ea6 100644
--- a/docs/ops/activation/Elu_1.md
+++ b/docs/ops/activation/Elu_1.md
@@ -33,7 +33,7 @@ where α corresponds to *alpha* attribute.
**Inputs**:
-* **1**: A tensor of type *T* and arbitrary shape. **Required**.
+* **1**: A tensor of type *T* and arbitrary shape. **Required.**
**Outputs**:
diff --git a/docs/ops/activation/Exp_1.md b/docs/ops/activation/Exp_1.md
index bb62a675a9b..e31e425e7e2 100644
--- a/docs/ops/activation/Exp_1.md
+++ b/docs/ops/activation/Exp_1.md
@@ -18,7 +18,7 @@ exp(x) = e^{x}
**Inputs**
-* **1**: A tensor of type *T* and arbitrary shape. **Required**.
+* **1**: A tensor of type *T* and arbitrary shape. **Required.**
**Outputs**
diff --git a/docs/ops/activation/GELU_2.md b/docs/ops/activation/GELU_2.md
index ef2921a6c7c..c61905191a4 100644
--- a/docs/ops/activation/GELU_2.md
+++ b/docs/ops/activation/GELU_2.md
@@ -27,7 +27,7 @@ Additionally, *Gelu* function may be approximated as follows:
**Inputs**:
-* **1**: A tensor of type *T* and arbitrary shape. **Required**.
+* **1**: A tensor of type *T* and arbitrary shape. **Required.**
**Outputs**:
diff --git a/docs/ops/activation/GELU_7.md b/docs/ops/activation/GELU_7.md
index b89e80bff7b..44f182a9ab3 100644
--- a/docs/ops/activation/GELU_7.md
+++ b/docs/ops/activation/GELU_7.md
@@ -45,7 +45,7 @@ For `tanh` approximation mode, *Gelu* function is represented as:
**Inputs**:
-* **1**: A tensor of type *T* and arbitrary shape. **Required**.
+* **1**: A tensor of type *T* and arbitrary shape. **Required.**
**Outputs**:
diff --git a/docs/ops/activation/HSigmoid_5.md b/docs/ops/activation/HSigmoid_5.md
index ee9e592d4e2..b499444b976 100644
--- a/docs/ops/activation/HSigmoid_5.md
+++ b/docs/ops/activation/HSigmoid_5.md
@@ -7,7 +7,7 @@
**Short description**: HSigmoid takes one input tensor and produces output tensor where the hard version of sigmoid function is applied to the tensor elementwise.
**Detailed description**: For each element from the input tensor calculates corresponding
-element in the output tensor with the following formula:
+element in the output tensor with the following formula:
\f[
HSigmoid(x) = \frac{min(max(x + 3, 0), 6)}{6}
@@ -44,4 +44,4 @@ The HSigmoid operation is introduced in the following [article](https://arxiv.or
-```
\ No newline at end of file
+```
diff --git a/docs/ops/activation/HSwish_4.md b/docs/ops/activation/HSwish_4.md
index bf572c39f43..4d74c811e1f 100644
--- a/docs/ops/activation/HSwish_4.md
+++ b/docs/ops/activation/HSwish_4.md
@@ -7,7 +7,7 @@
**Short description**: HSwish takes one input tensor and produces output tensor where the hard version of swish function is applied to the tensor elementwise.
**Detailed description**: For each element from the input tensor calculates corresponding
-element in the output tensor with the following formula:
+element in the output tensor with the following formula:
\f[
HSwish(x) = x \frac{min(max(x + 3, 0), 6)}{6}
@@ -19,7 +19,7 @@ The HSwish operation is introduced in the following [article](https://arxiv.org/
**Inputs**:
-* **1**: Multidimensional input tensor of type *T*. **Required**.
+* **1**: Multidimensional input tensor of type *T*. **Required.**
**Outputs**:
diff --git a/docs/ops/activation/LogSoftmax_5.md b/docs/ops/activation/LogSoftmax_5.md
index c6096423032..129ccdcea9d 100644
--- a/docs/ops/activation/LogSoftmax_5.md
+++ b/docs/ops/activation/LogSoftmax_5.md
@@ -24,7 +24,7 @@ LogSoftmax(x, axis) = t - Log(ReduceSum(Exp(t), axis))
**Inputs**:
-* **1**: Input tensor *x* of type *T* with enough number of dimension to be compatible with *axis* attribute. Required.
+* **1**: Input tensor *x* of type *T* with enough number of dimension to be compatible with *axis* attribute. **Required.**
**Outputs**:
diff --git a/docs/ops/activation/Mish_4.md b/docs/ops/activation/Mish_4.md
index e5eeba75396..30b98590fd2 100644
--- a/docs/ops/activation/Mish_4.md
+++ b/docs/ops/activation/Mish_4.md
@@ -20,7 +20,7 @@ Mish(x) = x\cdot\tanh\big(SoftPlus(x)\big) = x\cdot\tanh\big(\ln(1+e^{x})\big)
**Inputs**:
-* **1**: A tensor of type *T* and arbitrary shape. **Required**.
+* **1**: A tensor of type *T* and arbitrary shape. **Required.**
**Outputs**:
diff --git a/docs/ops/activation/PReLU_1.md b/docs/ops/activation/PReLU_1.md
index 6176df6c643..a8d4b7ec499 100644
--- a/docs/ops/activation/PReLU_1.md
+++ b/docs/ops/activation/PReLU_1.md
@@ -32,8 +32,8 @@ PReLU(x) = \max(0, x) + \alpha\cdot\min(0, x)
**Inputs**
-* **1**: `data`. A tensor of type *T* and arbitrary shape. **Required**.
-* **2**: `slope`. A tensor of type *T* and rank greater or equal to 1. Tensor with negative slope values. **Required**.
+* **1**: `data`. A tensor of type *T* and arbitrary shape. **Required.**
+* **2**: `slope`. A tensor of type *T* and rank greater or equal to 1. Tensor with negative slope values. **Required.**
* **Note**: Channels dimension corresponds to the second dimension of `data` input tensor. If `slope` input rank is 1 and its dimension is equal to the second dimension of `data` input, then per channel broadcast is applied. Otherwise `slope` input is broadcasted with numpy rules, description is available in [Broadcast Rules For Elementwise Operations](../broadcast_rules.md).
**Outputs**
diff --git a/docs/ops/activation/ReLU_1.md b/docs/ops/activation/ReLU_1.md
index f3808ca37a2..b3edf994e01 100644
--- a/docs/ops/activation/ReLU_1.md
+++ b/docs/ops/activation/ReLU_1.md
@@ -20,11 +20,11 @@ For each element from the input tensor calculates corresponding
**Inputs**:
-* **1**: Multidimensional input tensor *x* of any supported numeric type. Required.
+* **1**: Multidimensional input tensor *x* of any supported numeric type. **Required.**
**Outputs**:
-* **1**: Result of ReLU function applied to the input tensor *x*. Tensor with shape and type matching the input tensor. Required.
+* **1**: Result of ReLU function applied to the input tensor *x*. Tensor with shape and type matching the input tensor.
**Example**
@@ -44,4 +44,4 @@ For each element from the input tensor calculates corresponding
-```
\ No newline at end of file
+```
diff --git a/docs/ops/activation/Sigmoid_1.md b/docs/ops/activation/Sigmoid_1.md
index 305bd81b164..7bb97824194 100644
--- a/docs/ops/activation/Sigmoid_1.md
+++ b/docs/ops/activation/Sigmoid_1.md
@@ -20,7 +20,7 @@ sigmoid( x ) = \frac{1}{1+e^{-x}}
**Inputs**:
-* **1**: Input tensor *x* of any floating point type. Required.
+* **1**: Input tensor *x* of any floating point type. **Required.**
**Outputs**:
diff --git a/docs/ops/activation/SoftMax_1.md b/docs/ops/activation/SoftMax_1.md
index 6d1d4c9818f..ace4aefa332 100644
--- a/docs/ops/activation/SoftMax_1.md
+++ b/docs/ops/activation/SoftMax_1.md
@@ -27,7 +27,7 @@ where \f$C\f$ is a size of tensor along *axis* dimension.
**Inputs**:
-* **1**: Input tensor with enough number of dimension to be compatible with *axis* attribute. Required.
+* **1**: Input tensor with enough number of dimension to be compatible with *axis* attribute. **Required.**
**Outputs**:
@@ -41,4 +41,4 @@ where \f$C\f$ is a size of tensor along *axis* dimension.
...
-```
\ No newline at end of file
+```
diff --git a/docs/ops/activation/SoftPlus_4.md b/docs/ops/activation/SoftPlus_4.md
index cfb02e7335f..e6307f56a4f 100644
--- a/docs/ops/activation/SoftPlus_4.md
+++ b/docs/ops/activation/SoftPlus_4.md
@@ -35,7 +35,7 @@ For example, if *T* is `fp32`, `threshold` should be `20` or if *T* is `fp16`, `
**Inputs**:
-* **1**: A tensor of type *T* and arbitrary shape. **Required**.
+* **1**: A tensor of type *T* and arbitrary shape. **Required.**
**Outputs**:
diff --git a/docs/ops/activation/Swish_4.md b/docs/ops/activation/Swish_4.md
index c4714bf581d..ac81c794fcd 100644
--- a/docs/ops/activation/Swish_4.md
+++ b/docs/ops/activation/Swish_4.md
@@ -22,9 +22,9 @@ where β corresponds to `beta` scalar input.
**Inputs**:
-* **1**: `data`. A tensor of type *T* and arbitrary shape. **Required**.
+* **1**: `data`. A tensor of type *T* and arbitrary shape. **Required.**
-* **2**: `beta`. A non-negative scalar value of type *T*. Multiplication parameter for the sigmoid. Default value 1.0 is used. **Optional**.
+* **2**: `beta`. A non-negative scalar value of type *T*. Multiplication parameter for the sigmoid. Default value 1.0 is used. **Optional.**
**Outputs**:
diff --git a/docs/ops/arithmetic/FloorMod_1.md b/docs/ops/arithmetic/FloorMod_1.md
index 90483e612e9..27c77ade3fa 100644
--- a/docs/ops/arithmetic/FloorMod_1.md
+++ b/docs/ops/arithmetic/FloorMod_1.md
@@ -29,8 +29,8 @@ o_{i} = a_{i} % b_{i}
**Inputs**
-* **1**: A tensor of type *T* and arbitrary shape. Required.
-* **2**: A tensor of type *T* and arbitrary shape. Required.
+* **1**: A tensor of type *T* and arbitrary shape. **Required.**
+* **2**: A tensor of type *T* and arbitrary shape. **Required.**
**Outputs**
diff --git a/docs/ops/arithmetic/Maximum_1.md b/docs/ops/arithmetic/Maximum_1.md
index 478febfbc9e..d16db0e0d77 100644
--- a/docs/ops/arithmetic/Maximum_1.md
+++ b/docs/ops/arithmetic/Maximum_1.md
@@ -29,8 +29,8 @@ o_{i} = max(a_{i}, b_{i})
**Inputs**
-* **1**: A tensor of type *T* and arbitrary shape. Required.
-* **2**: A tensor of type *T* and arbitrary shape. Required.
+* **1**: A tensor of type *T* and arbitrary shape. **Required.**
+* **2**: A tensor of type *T* and arbitrary shape. **Required.**
**Outputs**
diff --git a/docs/ops/arithmetic/Minimum_1.md b/docs/ops/arithmetic/Minimum_1.md
index 61c24dc8c78..69d5e8d85ef 100644
--- a/docs/ops/arithmetic/Minimum_1.md
+++ b/docs/ops/arithmetic/Minimum_1.md
@@ -27,8 +27,8 @@ o_{i} = min(a_{i}, b_{i})
**Inputs**
-* **1**: A tensor of type *T* and arbitrary shape. Required.
-* **2**: A tensor of type *T* and arbitrary shape. Required.
+* **1**: A tensor of type *T* and arbitrary shape. **Required.**
+* **2**: A tensor of type *T* and arbitrary shape. **Required.**
**Outputs**
diff --git a/docs/ops/arithmetic/Mod_1.md b/docs/ops/arithmetic/Mod_1.md
index 03aa430eae6..7daf20d565c 100644
--- a/docs/ops/arithmetic/Mod_1.md
+++ b/docs/ops/arithmetic/Mod_1.md
@@ -30,8 +30,8 @@ o_{i} = a_{i} % b_{i}
**Inputs**
-* **1**: A tensor of type *T* and arbitrary shape. Required.
-* **2**: A tensor of type *T* and arbitrary shape. Required.
+* **1**: A tensor of type *T* and arbitrary shape. **Required.**
+* **2**: A tensor of type *T* and arbitrary shape. **Required.**
**Outputs**
diff --git a/docs/ops/arithmetic/Power_1.md b/docs/ops/arithmetic/Power_1.md
index 4e585cd5bfb..571b4445e3d 100644
--- a/docs/ops/arithmetic/Power_1.md
+++ b/docs/ops/arithmetic/Power_1.md
@@ -27,8 +27,8 @@ o_{i} = {a_{i} ^ b_{i}}
**Inputs**
-* **1**: A tensor of type *T* and arbitrary shape. Required.
-* **2**: A tensor of type *T* and arbitrary shape. Required.
+* **1**: A tensor of type *T* and arbitrary shape. **Required.**
+* **2**: A tensor of type *T* and arbitrary shape. **Required.**
**Outputs**
diff --git a/docs/ops/arithmetic/Round_5.md b/docs/ops/arithmetic/Round_5.md
index 794495835f6..85cb480cadd 100644
--- a/docs/ops/arithmetic/Round_5.md
+++ b/docs/ops/arithmetic/Round_5.md
@@ -2,16 +2,16 @@
**Versioned name**: *Round-5*
-**Category**: Arithmetic unary operation
+**Category**: Arithmetic unary operation
**Short description**: *Round* performs element-wise round operation with given tensor.
**Detailed description**: Operation takes one input tensor and rounds the values, element-wise, meaning it finds the nearest integer for each value. In case of halves, the rule is to round them to the nearest even integer if `mode` attribute is `half_to_even` or rounding in such a way that the result heads away from zero if `mode` attribute is `half_away_from_zero`.
-
+
Input = [-4.5, -1.9, -1.5, 0.5, 0.9, 1.5, 2.3, 2.5]
-
+
round(Input, mode = `half_to_even`) = [-4.0, -2.0, -2.0, 0.0, 1.0, 2.0, 2.0, 2.0]
-
+
round(Input, mode = `half_away_from_zero`) = [-5.0, -2.0, -2.0, 1.0, 1.0, 2.0, 2.0, 3.0]
**Attributes**:
diff --git a/docs/ops/arithmetic/SquaredDifference_1.md b/docs/ops/arithmetic/SquaredDifference_1.md
index 20e22e3b4de..509b70c2e14 100644
--- a/docs/ops/arithmetic/SquaredDifference_1.md
+++ b/docs/ops/arithmetic/SquaredDifference_1.md
@@ -27,8 +27,8 @@ o_{i} = (a_{i} - b_{i})^2
**Inputs**
-* **1**: A tensor of type *T* and arbitrary shape. Required.
-* **2**: A tensor of type *T* and arbitrary shape. Required.
+* **1**: A tensor of type *T* and arbitrary shape. **Required.**
+* **2**: A tensor of type *T* and arbitrary shape. **Required.**
**Outputs**
diff --git a/docs/ops/condition/Bucketize_3.md b/docs/ops/condition/Bucketize_3.md
index 066b6d8dae9..40b9369f191 100644
--- a/docs/ops/condition/Bucketize_3.md
+++ b/docs/ops/condition/Bucketize_3.md
@@ -18,7 +18,7 @@ For example, if the first input tensor is `[[3, 50], [10, -1]]` and the second i
* **Range of values**: "i64" or "i32"
* **Type**: string
* **Default value**: "i64"
- * **Required**: *No*
+ * **Required**: *no*
* *with_right_bound*
@@ -27,13 +27,13 @@ For example, if the first input tensor is `[[3, 50], [10, -1]]` and the second i
* true - bucket includes the right interval edge
* false - bucket includes the left interval edge
* **Type**: `boolean`
- * **Default value**: true
+ * **Default value**: true
* **Required**: *no*
**Inputs**:
-* **1**: N-D tensor of *T* type with elements for the bucketization. Required.
-* **2**: 1-D tensor of *T_BOUNDARIES* type with sorted unique boundaries for buckets. Required.
+* **1**: N-D tensor of *T* type with elements for the bucketization. **Required.**
+* **2**: 1-D tensor of *T_BOUNDARIES* type with sorted unique boundaries for buckets. **Required.**
**Outputs**:
diff --git a/docs/ops/condition/NonZero_3.md b/docs/ops/condition/NonZero_3.md
index 4bf4cc29a32..3034936721c 100644
--- a/docs/ops/condition/NonZero_3.md
+++ b/docs/ops/condition/NonZero_3.md
@@ -21,11 +21,11 @@
* **Range of values**: `i64` or `i32`
* **Type**: string
* **Default value**: "i64"
- * **Required**: *No*
+ * **Required**: *no*
**Inputs**:
-* **1**: A tensor of type *T* and arbitrary shape. **Required**.
+* **1**: A tensor of type *T* and arbitrary shape. **Required.**
**Outputs**:
@@ -57,4 +57,4 @@
-```
\ No newline at end of file
+```
diff --git a/docs/ops/convolution/BinaryConvolution_1.md b/docs/ops/convolution/BinaryConvolution_1.md
index 3ef2034a2d5..9176e3621cd 100644
--- a/docs/ops/convolution/BinaryConvolution_1.md
+++ b/docs/ops/convolution/BinaryConvolution_1.md
@@ -53,7 +53,7 @@ Computation algorithm for mode *xnor-popcount*:
* *xnor-popcount*
* **Type**: `string`
* **Required**: *yes*
- * **Note**: value `0` in inputs is interpreted as `-1`, value `1` as `1`
+ * **Note**: value `0` in inputs is interpreted as `-1`, value `1` as `1`
* *pad_value*
@@ -76,8 +76,8 @@ Computation algorithm for mode *xnor-popcount*:
**Inputs**:
-* **1**: Input tensor of type *T1* and rank 4. Layout is `[N, C_IN, Y, X]` (number of batches, number of channels, spatial axes Y, X). Required.
-* **2**: Kernel tensor of type *T2* and rank 4. Layout is `[C_OUT, C_IN, Y, X]` (number of output channels, number of input channels, spatial axes Y, X). Required.
+* **1**: Input tensor of type *T1* and rank 4. Layout is `[N, C_IN, Y, X]` (number of batches, number of channels, spatial axes Y, X). **Required.**
+* **2**: Kernel tensor of type *T2* and rank 4. Layout is `[C_OUT, C_IN, Y, X]` (number of output channels, number of input channels, spatial axes Y, X). **Required.**
* **Note**: Interpretation of tensor values is defined by *mode* attribute.
**Outputs**:
diff --git a/docs/ops/convolution/ConvolutionBackpropData_1.md b/docs/ops/convolution/ConvolutionBackpropData_1.md
index 117ff744995..a69f5e300ad 100644
--- a/docs/ops/convolution/ConvolutionBackpropData_1.md
+++ b/docs/ops/convolution/ConvolutionBackpropData_1.md
@@ -90,11 +90,11 @@ else:
**Inputs**:
-* **1**: Input tensor of type *T1* and rank 3, 4 or 5. Layout is `[N, C_INPUT, Z, Y, X]` (number of batches, number of input channels, spatial axes Z, Y, X). *Required*.
+* **1**: Input tensor of type *T1* and rank 3, 4 or 5. Layout is `[N, C_INPUT, Z, Y, X]` (number of batches, number of input channels, spatial axes Z, Y, X). **Required.**
-* **2**: Convolution kernel tensor of type *T1* and rank 3, 4 or 5. Layout is `[C_INPUT, C_OUTPUT, Z, Y, X]` (number of input channels, number of output channels, spatial axes Z, Y, X). Spatial size of the kernel is derived from the shape of this input and aren't specified by any attribute. *Required*.
+* **2**: Convolution kernel tensor of type *T1* and rank 3, 4 or 5. Layout is `[C_INPUT, C_OUTPUT, Z, Y, X]` (number of input channels, number of output channels, spatial axes Z, Y, X). Spatial size of the kernel is derived from the shape of this input and aren't specified by any attribute. **Required.**
-* **3**: `output_shape` is 1D tensor of type *T2* that specifies spatial shape of the output. If specified, *padding amount* is deduced from relation of input and output spatial shapes according to formulas in the description. If not specified, *output shape* is calculated based on the `pads_begin` and `pads_end` or completely according to `auto_pad`. *Optional*.
+* **3**: `output_shape` is 1D tensor of type *T2* that specifies spatial shape of the output. If specified, *padding amount* is deduced from relation of input and output spatial shapes according to formulas in the description. If not specified, *output shape* is calculated based on the `pads_begin` and `pads_end` or completely according to `auto_pad`. **Optional.**
* **Note**: Type of the convolution (1D, 2D or 3D) is derived from the rank of the input tensors and not specified by any attribute:
* 1D convolution (input tensors rank 3) means that there is only one spatial axis X,
* 2D convolution (input tensors rank 4) means that there are two spatial axes Y, X,
diff --git a/docs/ops/convolution/Convolution_1.md b/docs/ops/convolution/Convolution_1.md
index 64971670154..e77967e4130 100644
--- a/docs/ops/convolution/Convolution_1.md
+++ b/docs/ops/convolution/Convolution_1.md
@@ -77,8 +77,8 @@ The receptive field in each layer is calculated using the formulas:
**Inputs**:
-* **1**: Input tensor of type *T* and rank 3, 4 or 5. Layout is `[N, C_IN, Z, Y, X]` (number of batches, number of channels, spatial axes Z, Y, X). Required.
-* **2**: Kernel tensor of type *T* and rank 3, 4 or 5. Layout is `[C_OUT, C_IN, Z, Y, X]` (number of output channels, number of input channels, spatial axes Z, Y, X). Required.
+* **1**: Input tensor of type *T* and rank 3, 4 or 5. Layout is `[N, C_IN, Z, Y, X]` (number of batches, number of channels, spatial axes Z, Y, X). **Required.**
+* **2**: Kernel tensor of type *T* and rank 3, 4 or 5. Layout is `[C_OUT, C_IN, Z, Y, X]` (number of output channels, number of input channels, spatial axes Z, Y, X). **Required.**
* **Note**: Type of the convolution (1D, 2D or 3D) is derived from the rank of the input tensors and not specified by any attribute:
* 1D convolution (input tensors rank 3) means that there is only one spatial axis X
* 2D convolution (input tensors rank 4) means that there are two spatial axes Y, X
diff --git a/docs/ops/convolution/DeformableConvolution_1.md b/docs/ops/convolution/DeformableConvolution_1.md
index 69dd28342d1..77140cb30c7 100644
--- a/docs/ops/convolution/DeformableConvolution_1.md
+++ b/docs/ops/convolution/DeformableConvolution_1.md
@@ -91,11 +91,11 @@ Where
**Inputs**:
-* **1**: Input tensor of type *T* and rank 4. Layout is `NCYX` (number of batches, number of channels, spatial axes Y and X). Required.
+* **1**: Input tensor of type *T* and rank 4. Layout is `NCYX` (number of batches, number of channels, spatial axes Y and X). **Required.**
-* **2**: Offsets tensor of type *T* and rank 4. Layout is `NCYX` (number of batches, *deformable_group* \* kernel_Y \* kernel_X \* 2, spatial axes Y and X). Required.
+* **2**: Offsets tensor of type *T* and rank 4. Layout is `NCYX` (number of batches, *deformable_group* \* kernel_Y \* kernel_X \* 2, spatial axes Y and X). **Required.**
-* **3**: Kernel tensor of type *T* and rank 4. Layout is `OIYX` (number of output channels, number of input channels, spatial axes Y and X). Required.
+* **3**: Kernel tensor of type *T* and rank 4. Layout is `OIYX` (number of output channels, number of input channels, spatial axes Y and X). **Required.**
**Outputs**:
diff --git a/docs/ops/convolution/GroupConvolutionBackpropData_1.md b/docs/ops/convolution/GroupConvolutionBackpropData_1.md
index f56ff5a8fa5..6739d5dfcb0 100644
--- a/docs/ops/convolution/GroupConvolutionBackpropData_1.md
+++ b/docs/ops/convolution/GroupConvolutionBackpropData_1.md
@@ -62,11 +62,11 @@
**Inputs**:
-* **1**: Input tensor of type `T1` and rank 3, 4 or 5. Layout is `[N, GROUPS * C_IN, Z, Y, X]` (number of batches, number of channels, spatial axes Z, Y, X). Required.
+* **1**: Input tensor of type `T1` and rank 3, 4 or 5. Layout is `[N, GROUPS * C_IN, Z, Y, X]` (number of batches, number of channels, spatial axes Z, Y, X). **Required.**
-* **2**: Kernel tensor of type `T1` and rank 4, 5 or 6. Layout is `[GROUPS, C_IN, C_OUT, X, Y, Z]` (number of groups, number of input channels, number of output channels, spatial axes X, Y, Z). Required.
+* **2**: Kernel tensor of type `T1` and rank 4, 5 or 6. Layout is `[GROUPS, C_IN, C_OUT, X, Y, Z]` (number of groups, number of input channels, number of output channels, spatial axes X, Y, Z). **Required.**
-* **3**: Output shape tensor of type `T2` and rank 1. It specifies spatial shape of the output. Optional.
+* **3**: Output shape tensor of type `T2` and rank 1. It specifies spatial shape of the output. **Optional.**
* **Note** Number of groups is derived from the shape of the kernel and not specified by any attribute.
* **Note**: Type of the convolution (1D, 2D or 3D) is derived from the rank of the input tensors and not specified by any attribute:
* 1D convolution (input tensors rank 3) means that there is only one spatial axis X
diff --git a/docs/ops/convolution/GroupConvolution_1.md b/docs/ops/convolution/GroupConvolution_1.md
index 632bd6f136f..619d5f6151d 100644
--- a/docs/ops/convolution/GroupConvolution_1.md
+++ b/docs/ops/convolution/GroupConvolution_1.md
@@ -55,7 +55,7 @@ Neural Networks](https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76
**Inputs**:
-* **1**: Input tensor of type *T* and rank 3, 4 or 5. Layout is `[N, GROUPS * C_IN, Z, Y, X]` (number of batches, number of channels, spatial axes Z, Y, X). Required.
+* **1**: Input tensor of type *T* and rank 3, 4 or 5. Layout is `[N, GROUPS * C_IN, Z, Y, X]` (number of batches, number of channels, spatial axes Z, Y, X). **Required.**
* **2**: Convolution kernel tensor of type *T* and rank 4, 5 or 6. Layout is `[GROUPS, C_OUT, C_IN, Z, Y, X]` (number of groups, number of output channels, number of input channels, spatial axes Z, Y, X),
* **Note** Number of groups is derived from the shape of the kernel and not specified by any attribute.
* **Note**: Type of the convolution (1D, 2D or 3D) is derived from the rank of the input tensors and not specified by any attribute:
diff --git a/docs/ops/detection/DeformablePSROIPooling_1.md b/docs/ops/detection/DeformablePSROIPooling_1.md
index 0008f28eda6..78b9cda4988 100644
--- a/docs/ops/detection/DeformablePSROIPooling_1.md
+++ b/docs/ops/detection/DeformablePSROIPooling_1.md
@@ -81,12 +81,12 @@ This operation is compatible with [MXNet DeformablePSROIPooling](https://mxnet.a
**Inputs**:
-* **1**: 4D input tensor of type *T* and shape `[N_in, C_in, H_in, W_in]` with position sensitive score maps. Required.
+* **1**: 4D input tensor of type *T* and shape `[N_in, C_in, H_in, W_in]` with position sensitive score maps. **Required.**
-* **2**: 2D input tensor of type *T* and shape `[NUM_ROIS, 5]`. It contains a list of five element tuples describing a single ROI (region of interest): `[batch_id, x_1, y_1, x_2, y_2]`. Required.
+* **2**: 2D input tensor of type *T* and shape `[NUM_ROIS, 5]`. It contains a list of five element tuples describing a single ROI (region of interest): `[batch_id, x_1, y_1, x_2, y_2]`. **Required.**
Batch indices must be in the range of `[0, N_in-1]`.
-* **3**: 4D input tensor of type *T* and shape `[NUM_ROIS, 2*NUM_CLASSES, group_size, group_size]` with transformation values. It contains normalized `[0, 1]` offsets for each ROI bin left top corner coordinates. Channel dimension is multiplied by `2` because of encoding two `(x, y)` coordinates. Optional.
+* **3**: 4D input tensor of type *T* and shape `[NUM_ROIS, 2*NUM_CLASSES, group_size, group_size]` with transformation values. It contains normalized `[0, 1]` offsets for each ROI bin left top corner coordinates. Channel dimension is multiplied by `2` because of encoding two `(x, y)` coordinates. **Optional.**
**Outputs**:
* **1**: 4D output tensor of type *T* shape `[NUM_ROIS, output_dim, group_size, group_size]` with ROIs score maps.
diff --git a/docs/ops/detection/DetectionOutput_1.md b/docs/ops/detection/DetectionOutput_1.md
index 7615ca830b0..95814d42a6b 100644
--- a/docs/ops/detection/DetectionOutput_1.md
+++ b/docs/ops/detection/DetectionOutput_1.md
@@ -133,12 +133,11 @@ At each feature map cell, *DetectionOutput* predicts the offsets relative to the
**Inputs**
-* **1**: 2D input tensor with box logits with shape `[N, num_prior_boxes * num_loc_classes * 4]` and type *T*. `num_loc_classes` is equal to `num_classes` when `share_location` is 0 or it's equal to 1 otherwise. Required.
-* **2**: 2D input tensor with class predictions with shape `[N, num_prior_boxes * num_classes]` and type *T*. Required.
-* **3**: 3D input tensor with proposals with shape `[priors_batch_size, 1, num_prior_boxes * prior_box_size]` or `[priors_batch_size, 2, num_prior_boxes * prior_box_size]`. `priors_batch_size` is either 1 or `N`. Size of the second dimension depends on `variance_encoded_in_target`. If `variance_encoded_in_target` is equal to 0, the second dimension equals to 2 and variance values are provided for each boxes coordinates. If `variance_encoded_in_target` is equal to 1, the second dimension equals to 1 and this tensor contains proposals boxes only. `prior_box_size` is equal to 4 when `normalized` is set to 1 or it's equal to 5 otherwise. Required.
- Required.
-* **4**: 2D input tensor with additional class predictions information described in the [article](https://arxiv.org/pdf/1711.06897.pdf). Its shape must be equal to `[N, num_prior_boxes * 2]`. Optional.
-* **5**: 2D input tensor with additional box predictions information described in the [article](https://arxiv.org/pdf/1711.06897.pdf). Its shape must be equal to first input tensor shape. Optional.
+* **1**: 2D input tensor with box logits with shape `[N, num_prior_boxes * num_loc_classes * 4]` and type *T*. `num_loc_classes` is equal to `num_classes` when `share_location` is 0 or it's equal to 1 otherwise. **Required.**
+* **2**: 2D input tensor with class predictions with shape `[N, num_prior_boxes * num_classes]` and type *T*. **Required.**
+* **3**: 3D input tensor with proposals with shape `[priors_batch_size, 1, num_prior_boxes * prior_box_size]` or `[priors_batch_size, 2, num_prior_boxes * prior_box_size]`. `priors_batch_size` is either 1 or `N`. Size of the second dimension depends on `variance_encoded_in_target`. If `variance_encoded_in_target` is equal to 0, the second dimension equals to 2 and variance values are provided for each boxes coordinates. If `variance_encoded_in_target` is equal to 1, the second dimension equals to 1 and this tensor contains proposals boxes only. `prior_box_size` is equal to 4 when `normalized` is set to 1 or it's equal to 5 otherwise. **Required.**
+* **4**: 2D input tensor with additional class predictions information described in the [article](https://arxiv.org/pdf/1711.06897.pdf). Its shape must be equal to `[N, num_prior_boxes * 2]`. **Optional.**
+* **5**: 2D input tensor with additional box predictions information described in the [article](https://arxiv.org/pdf/1711.06897.pdf). Its shape must be equal to first input tensor shape. **Optional.**
**Outputs**
diff --git a/docs/ops/detection/ExperimentalDetectronDetectionOutput_6.md b/docs/ops/detection/ExperimentalDetectronDetectionOutput_6.md
index 48450817c5b..e849e28e17a 100644
--- a/docs/ops/detection/ExperimentalDetectronDetectionOutput_6.md
+++ b/docs/ops/detection/ExperimentalDetectronDetectionOutput_6.md
@@ -4,12 +4,12 @@
**Category**: Object detection
-**Short description**: The *ExperimentalDetectronDetectionOutput* operation performs non-maximum suppression to generate
+**Short description**: The *ExperimentalDetectronDetectionOutput* operation performs non-maximum suppression to generate
the detection output using information on location and score predictions.
**Detailed description**: The operation performs the following steps:
-1. Applies deltas to boxes sizes [x1, y1, x2, y2] and takes coordinates of
+1. Applies deltas to boxes sizes [x1, y1, x2, y2] and takes coordinates of
refined boxes according to the formulas:
`x1_new = ctr_x + (dx - 0.5 * exp(min(d_log_w, max_delta_log_wh))) * box_w`
@@ -19,7 +19,7 @@ refined boxes according to the formulas:
`x1_new = ctr_x + (dx + 0.5 * exp(min(d_log_w, max_delta_log_wh))) * box_w - 1.0`
`y1_new = ctr_y + (dy + 0.5 * exp(min(d_log_h, max_delta_log_wh))) * box_h - 1.0`
-
+
* `box_w` and `box_h` are width and height of box, respectively:
`box_w = x1 - x0 + 1.0`
@@ -31,8 +31,8 @@ refined boxes according to the formulas:
`ctr_x = x0 + 0.5f * box_w`
`ctr_y = y0 + 0.5f * box_h`
-
-* `dx`, `dy`, `d_log_w` and `d_log_h` are deltas calculated according to the formulas below, and `deltas_tensor` is a
+
+* `dx`, `dy`, `d_log_w` and `d_log_h` are deltas calculated according to the formulas below, and `deltas_tensor` is a
second input:
`dx = deltas_tensor[roi_idx, 4 * class_idx + 0] / deltas_weights[0]`
@@ -46,17 +46,17 @@ second input:
2. If *class_agnostic_box_regression* is `true` removes predictions for background classes.
3. Clips boxes to the image.
4. Applies *score_threshold* on detection scores.
-5. Applies non-maximum suppression class-wise with *nms_threshold* and returns *post_nms_count* or less detections per
+5. Applies non-maximum suppression class-wise with *nms_threshold* and returns *post_nms_count* or less detections per
class.
-6. Returns *max_detections_per_image* detections if total number of detections is more than *max_detections_per_image*;
-otherwise, returns total number of detections and the output tensor is filled with undefined values for rest output
+6. Returns *max_detections_per_image* detections if total number of detections is more than *max_detections_per_image*;
+otherwise, returns total number of detections and the output tensor is filled with undefined values for rest output
tensor elements.
**Attributes**:
* *score_threshold*
- * **Description**: The *score_threshold* attribute specifies a threshold to consider only detections whose score are
+ * **Description**: The *score_threshold* attribute specifies a threshold to consider only detections whose score are
larger than the threshold.
* **Range of values**: non-negative floating point number
* **Type**: float
@@ -97,7 +97,7 @@ tensor elements.
* *class_agnostic_box_regression*
- * **Description**: *class_agnostic_box_regression* attribute is a flag that specifies whether to delete background
+ * **Description**: *class_agnostic_box_regression* attribute is a flag that specifies whether to delete background
classes or not.
* **Range of values**:
* `true` means background classes should be deleted
@@ -124,8 +124,8 @@ tensor elements.
**Inputs**
-* **1**: A 2D tensor of type *T* with input ROIs, with shape `[number_of_ROIs, 4]` providing the ROIs as 4-tuples:
-[x1, y1, x2, y2]. The batch dimension of first, second, and third inputs
+* **1**: A 2D tensor of type *T* with input ROIs, with shape `[number_of_ROIs, 4]` providing the ROIs as 4-tuples:
+[x1, y1, x2, y2]. The batch dimension of first, second, and third inputs
should be the same. **Required.**
* **2**: A 2D tensor of type *T* with shape `[number_of_ROIs, num_classes * 4]` providing deltas for input boxes.
diff --git a/docs/ops/detection/ExperimentalDetectronGenerateProposalsSingleImage_6.md b/docs/ops/detection/ExperimentalDetectronGenerateProposalsSingleImage_6.md
index ce1513ed2bb..7cfacbeed58 100644
--- a/docs/ops/detection/ExperimentalDetectronGenerateProposalsSingleImage_6.md
+++ b/docs/ops/detection/ExperimentalDetectronGenerateProposalsSingleImage_6.md
@@ -4,7 +4,7 @@
**Category**: Object detection
-**Short description**: The *ExperimentalDetectronGenerateProposalsSingleImage* operation computes ROIs and their scores
+**Short description**: The *ExperimentalDetectronGenerateProposalsSingleImage* operation computes ROIs and their scores
based on input data.
**Detailed description**: The operation performs the following steps:
@@ -15,7 +15,7 @@ based on input data.
4. Sorts all `(proposal, score)` pairs by score from highest to lowest; order of pairs with equal scores is undefined.
5. Takes top *pre_nms_count* proposals, if total number of proposals is less than *pre_nms_count* takes all proposals.
6. Applies non-maximum suppression with *nms_threshold*.
-7. Takes top *post_nms_count* proposals and returns these top proposals and their scores. If total number of proposals
+7. Takes top *post_nms_count* proposals and returns these top proposals and their scores. If total number of proposals
is less than *post_nms_count* returns output tensors filled with zeroes.
**Attributes**:
@@ -54,15 +54,15 @@ is less than *post_nms_count* returns output tensors filled with zeroes.
**Inputs**
-* **1**: A 1D tensor of type *T* with 3 elements `[image_height, image_width, scale_height_and_width]` providing input
+* **1**: A 1D tensor of type *T* with 3 elements `[image_height, image_width, scale_height_and_width]` providing input
image size info. **Required.**
* **2**: A 2D tensor of type *T* with shape `[height * width * number_of_channels, 4]` providing anchors. **Required.**
-* **3**: A 3D tensor of type *T* with shape `[number_of_channels * 4, height, width]` providing deltas for anchors.
+* **3**: A 3D tensor of type *T* with shape `[number_of_channels * 4, height, width]` providing deltas for anchors.
Height and width for third and fourth inputs should be equal. **Required.**
-* **4**: A 3D tensor of type *T* with shape `[number_of_channels, height, width]` providing proposals scores.
+* **4**: A 3D tensor of type *T* with shape `[number_of_channels, height, width]` providing proposals scores.
**Required.**
**Outputs**
diff --git a/docs/ops/detection/ExperimentalDetectronPriorGridGenerator_6.md b/docs/ops/detection/ExperimentalDetectronPriorGridGenerator_6.md
index bcf09c46c89..54a684d98bb 100644
--- a/docs/ops/detection/ExperimentalDetectronPriorGridGenerator_6.md
+++ b/docs/ops/detection/ExperimentalDetectronPriorGridGenerator_6.md
@@ -6,14 +6,14 @@
**Short description**: The *ExperimentalDetectronPriorGridGenerator* operation generates prior grids of specified sizes.
-**Detailed description**: The operation takes coordinates of centres of boxes and adds strides with offset `0.5` to them to
+**Detailed description**: The operation takes coordinates of centres of boxes and adds strides with offset `0.5` to them to
calculate coordinates of prior grids.
-Numbers of generated cells is `featmap_height` and `featmap_width` if *h* and *w* are zeroes; otherwise, *h* and *w*,
-respectively. Steps of generated grid are `image_height` / `layer_height` and `image_width` / `layer_width` if
+Numbers of generated cells is `featmap_height` and `featmap_width` if *h* and *w* are zeroes; otherwise, *h* and *w*,
+respectively. Steps of generated grid are `image_height` / `layer_height` and `image_width` / `layer_width` if
*stride_h* and *stride_w* are zeroes; otherwise, *stride_h* and *stride_w*, respectively.
-`featmap_height`, `featmap_width`, `image_height` and `image_width` are spatial dimensions values from second and third
+`featmap_height`, `featmap_width`, `image_height` and `image_width` are spatial dimensions values from second and third
inputs, respectively.
**Attributes**:
@@ -35,7 +35,7 @@ inputs, respectively.
* **Type**: int
* **Default value**: 0
* **Required**: *no*
-
+
* *w*
* **Description**: The *w* attribute specifies number of cells of the generated grid with respect to width.
@@ -51,7 +51,7 @@ inputs, respectively.
* **Type**: float
* **Default value**: 0.0
* **Required**: *no*
-
+
* *stride_y*
* **Description**: The *stride_y* attribute specifies the step of generated grid with respect to y coordinate.
@@ -64,19 +64,19 @@ inputs, respectively.
* **1**: A 2D tensor of type *T* with shape `[number_of_priors, 4]` contains priors. **Required.**
-* **2**: A 4D tensor of type *T* with input feature map `[1, number_of_channels, featmap_height, featmap_width]`. This
+* **2**: A 4D tensor of type *T* with input feature map `[1, number_of_channels, featmap_height, featmap_width]`. This
operation uses only sizes of this input tensor, not its data.**Required.**
-* **3**: A 4D tensor of type *T* with input image `[1, number_of_channels, image_height, image_width]`. The number of
-channels of both feature map and input image tensors must match. This operation uses only sizes of this input tensor,
+* **3**: A 4D tensor of type *T* with input image `[1, number_of_channels, image_height, image_width]`. The number of
+channels of both feature map and input image tensors must match. This operation uses only sizes of this input tensor,
not its data. **Required.**
**Outputs**
-* **1**: A tensor of type *T* with priors grid with shape `[featmap_height * featmap_width * number_of_priors, 4]`
+* **1**: A tensor of type *T* with priors grid with shape `[featmap_height * featmap_width * number_of_priors, 4]`
if flatten is `true` or `[featmap_height, featmap_width, number_of_priors, 4]`, otherwise.
-If 0 < *h* < `featmap_height` and/or 0 < *w* < `featmap_width` the output data size is less than
-`featmap_height` * `featmap_width` * `number_of_priors` * 4 and the output tensor is filled with undefined values for
+If 0 < *h* < `featmap_height` and/or 0 < *w* < `featmap_width` the output data size is less than
+`featmap_height` * `featmap_width` * `number_of_priors` * 4 and the output tensor is filled with undefined values for
rest output tensor elements.
**Types**
diff --git a/docs/ops/detection/ExperimentalDetectronROIFeatureExtractor_6.md b/docs/ops/detection/ExperimentalDetectronROIFeatureExtractor_6.md
index 2eb40fd6978..8afdfe867fa 100644
--- a/docs/ops/detection/ExperimentalDetectronROIFeatureExtractor_6.md
+++ b/docs/ops/detection/ExperimentalDetectronROIFeatureExtractor_6.md
@@ -4,11 +4,11 @@
**Category**: Object detection
-**Short description**: *ExperimentalDetectronROIFeatureExtractor* is the [ROIAlign](ROIAlign_3.md) operation applied
+**Short description**: *ExperimentalDetectronROIFeatureExtractor* is the [ROIAlign](ROIAlign_3.md) operation applied
over a feature pyramid.
-**Detailed description**: *ExperimentalDetectronROIFeatureExtractor* maps input ROIs to the levels of the pyramid
-depending on the sizes of ROIs and parameters of the operation, and then extracts features via ROIAlign from
+**Detailed description**: *ExperimentalDetectronROIFeatureExtractor* maps input ROIs to the levels of the pyramid
+depending on the sizes of ROIs and parameters of the operation, and then extracts features via ROIAlign from
corresponding pyramid levels.
Operation applies the *ROIAlign* algorithm to the pyramid layers:
@@ -23,7 +23,7 @@ PyramidLevelMapper maps the ROI to the pyramid level using the following formula
Here 224 is the canonical ImageNet pre-training size, 2 is the pyramid starting level, and `w`, `h` are the ROI width and height.
-For more details please see the following source:
+For more details please see the following source:
[Feature Pyramid Networks for Object Detection](https://arxiv.org/pdf/1612.03144.pdf).
**Attributes**:
@@ -38,7 +38,7 @@ For more details please see the following source:
* *sampling_ratio*
- * **Description**: The *sampling_ratio* attribute specifies the number of sampling points per the output value. If 0,
+ * **Description**: The *sampling_ratio* attribute specifies the number of sampling points per the output value. If 0,
then use adaptive number computed as `ceil(roi_width / output_width)`, and likewise for height.
* **Range of values**: a non-negative integer number
* **Type**: int
@@ -47,8 +47,8 @@ For more details please see the following source:
* *pyramid_scales*
- * **Description**: The *pyramid_scales* enlists `image_size / layer_size[l]` ratios for pyramid layers `l=1,...,L`,
- where `L` is the number of pyramid layers, and `image_size` refers to network's input image. Note that pyramid's
+ * **Description**: The *pyramid_scales* enlists `image_size / layer_size[l]` ratios for pyramid layers `l=1,...,L`,
+ where `L` is the number of pyramid layers, and `image_size` refers to network's input image. Note that pyramid's
largest layer may have smaller size than input image, e.g. `image_size` is `800 x 1344` in the XML example below.
* **Range of values**: a list of positive integer numbers
* **Type**: int[]
@@ -67,21 +67,21 @@ For more details please see the following source:
**Inputs**:
-* **1**: 2D input tensor of type *T* with shape `[number_of_ROIs, 4]` providing the ROIs as 4-tuples:
-[x1, y1, x2, y2]. Coordinates *x* and *y* are refer to the network's input
-*image_size*. **Required**.
+* **1**: 2D input tensor of type *T* with shape `[number_of_ROIs, 4]` providing the ROIs as 4-tuples:
+[x1, y1, x2, y2]. Coordinates *x* and *y* are refer to the network's input
+*image_size*. **Required.**
-* **2**, ..., **L**: Pyramid of 4D input tensors with feature maps. Shape must be
-`[1, number_of_channels, layer_size[l], layer_size[l]]`. The number of channels must be the same for all layers of the
-pyramid. The layer width and height must equal to the `layer_size[l] = image_size / pyramid_scales[l]`. **Required**.
+* **2**, ..., **L**: Pyramid of 4D input tensors with feature maps. Shape must be
+`[1, number_of_channels, layer_size[l], layer_size[l]]`. The number of channels must be the same for all layers of the
+pyramid. The layer width and height must equal to the `layer_size[l] = image_size / pyramid_scales[l]`. **Required.**
**Outputs**:
-* **1**: 4D output tensor of type *T* with ROIs features. Shape must be
-`[number_of_ROIs, number_of_channels, output_size, output_size]`. Channels number is the same as for all images in the
+* **1**: 4D output tensor of type *T* with ROIs features. Shape must be
+`[number_of_ROIs, number_of_channels, output_size, output_size]`. Channels number is the same as for all images in the
input pyramid.
-* **2**: 2D output tensor of type *T* with reordered ROIs according to their mapping to the pyramid levels. Shape
+* **2**: 2D output tensor of type *T* with reordered ROIs according to their mapping to the pyramid levels. Shape
must be the same as for 1 input: `[number_of_ROIs, 4]`.
**Types**
diff --git a/docs/ops/detection/PSROIPooling_1.md b/docs/ops/detection/PSROIPooling_1.md
index 487a5453059..7424ba519d9 100644
--- a/docs/ops/detection/PSROIPooling_1.md
+++ b/docs/ops/detection/PSROIPooling_1.md
@@ -61,9 +61,9 @@ ROIs coordinates are specified in absolute values for the average mode and in no
**Inputs**:
-* **1**: 4D input tensor with shape `[N, C, H, W]` and type *T* with feature maps. Required.
+* **1**: 4D input tensor with shape `[N, C, H, W]` and type *T* with feature maps. **Required.**
-* **2**: 2D input tensor with shape `[num_boxes, 5]`. It contains a list of five element tuples that describe a region of interest: `[batch_id, x_1, y_1, x_2, y_2]`. Required.
+* **2**: 2D input tensor with shape `[num_boxes, 5]`. It contains a list of five element tuples that describe a region of interest: `[batch_id, x_1, y_1, x_2, y_2]`. **Required.**
Batch indices must be in the range of `[0, N-1]`.
**Outputs**:
diff --git a/docs/ops/detection/PriorBoxClustered_1.md b/docs/ops/detection/PriorBoxClustered_1.md
index 3ce48827581..0950f87ae2a 100644
--- a/docs/ops/detection/PriorBoxClustered_1.md
+++ b/docs/ops/detection/PriorBoxClustered_1.md
@@ -59,9 +59,9 @@
**Inputs**:
-* **1**: `output_size` - 1D tensor with two integer elements `[height, width]`. Specifies the spatial size of generated grid with boxes. Required.
+* **1**: `output_size` - 1D tensor with two integer elements `[height, width]`. Specifies the spatial size of generated grid with boxes. **Required.**
-* **2**: `image_size` - 1D tensor with two integer elements `[image_height, image_width]` that specifies shape of the image for which boxes are generated. Optional.
+* **2**: `image_size` - 1D tensor with two integer elements `[image_height, image_width]` that specifies shape of the image for which boxes are generated. **Optional.**
**Outputs**:
diff --git a/docs/ops/detection/PriorBox_1.md b/docs/ops/detection/PriorBox_1.md
index b278252dbc6..1fead6099fc 100644
--- a/docs/ops/detection/PriorBox_1.md
+++ b/docs/ops/detection/PriorBox_1.md
@@ -138,9 +138,9 @@
**Inputs**:
-* **1**: `output_size` - 1D tensor of type *T_INT* with two elements `[height, width]`. Specifies the spatial size of generated grid with boxes. **Required**.
+* **1**: `output_size` - 1D tensor of type *T_INT* with two elements `[height, width]`. Specifies the spatial size of generated grid with boxes. **Required.**
-* **2**: `image_size` - 1D tensor of type *T_INT* with two elements `[image_height, image_width]` that specifies shape of the image for which boxes are generated. **Required**.
+* **2**: `image_size` - 1D tensor of type *T_INT* with two elements `[image_height, image_width]` that specifies shape of the image for which boxes are generated. **Required.**
**Outputs**:
diff --git a/docs/ops/detection/Proposal_1.md b/docs/ops/detection/Proposal_1.md
index d7dcece4e64..42392c0f811 100644
--- a/docs/ops/detection/Proposal_1.md
+++ b/docs/ops/detection/Proposal_1.md
@@ -129,11 +129,11 @@
**Inputs**:
-* **1**: 4D tensor of type *T* and shape `[batch_size, 2*K, H, W]` with class prediction scores. Required.
+* **1**: 4D tensor of type *T* and shape `[batch_size, 2*K, H, W]` with class prediction scores. **Required.**
-* **2**: 4D tensor of type *T* and shape `[batch_size, 4*K, H, W]` with deltas for each bounding box. Required.
+* **2**: 4D tensor of type *T* and shape `[batch_size, 4*K, H, W]` with deltas for each bounding box. **Required.**
-* **3**: 1D tensor of type *T* with 3 or 4 elements: `[image_height, image_width, scale_height_and_width]` or `[image_height, image_width, scale_height, scale_width]`. Required.
+* **3**: 1D tensor of type *T* with 3 or 4 elements: `[image_height, image_width, scale_height_and_width]` or `[image_height, image_width, scale_height, scale_width]`. **Required.**
**Outputs**:
diff --git a/docs/ops/detection/Proposal_4.md b/docs/ops/detection/Proposal_4.md
index e3f4fa7fd5b..dbc55f7afbb 100644
--- a/docs/ops/detection/Proposal_4.md
+++ b/docs/ops/detection/Proposal_4.md
@@ -138,11 +138,11 @@ the second optional tensor of shape `[batch_size * post_nms_topn]` with probabil
**Inputs**:
-* **1**: 4D tensor of type *T* and shape `[batch_size, 2*K, H, W]` with class prediction scores. Required.
+* **1**: 4D tensor of type *T* and shape `[batch_size, 2*K, H, W]` with class prediction scores. **Required.**
-* **2**: 4D tensor of type *T* and shape `[batch_size, 4*K, H, W]` with deltas for each bounding box. Required.
+* **2**: 4D tensor of type *T* and shape `[batch_size, 4*K, H, W]` with deltas for each bounding box. **Required.**
-* **3**: 1D tensor of type *T* with 3 or 4 elements: `[image_height, image_width, scale_height_and_width]` or `[image_height, image_width, scale_height, scale_width]`. Required.
+* **3**: 1D tensor of type *T* with 3 or 4 elements: `[image_height, image_width, scale_height_and_width]` or `[image_height, image_width, scale_height, scale_width]`. **Required.**
**Outputs**
diff --git a/docs/ops/detection/ROIAlign_3.md b/docs/ops/detection/ROIAlign_3.md
index 1bcec40a059..83a72f76028 100644
--- a/docs/ops/detection/ROIAlign_3.md
+++ b/docs/ops/detection/ROIAlign_3.md
@@ -55,13 +55,13 @@
**Inputs**:
-* **1**: 4D input tensor of shape `[N, C, H, W]` with feature maps of type *T*. Required.
+* **1**: 4D input tensor of shape `[N, C, H, W]` with feature maps of type *T*. **Required.**
* **2**: 2D input tensor of shape `[NUM_ROIS, 4]` describing box consisting of 4 element tuples: `[x_1, y_1, x_2, y_2]` in relative coordinates of type *T*.
The box height and width are calculated the following way: `roi_width = max(spatial_scale * (x_2 - x_1), 1.0)`,
-`roi_height = max(spatial_scale * (y_2 - y_1), 1.0)`, so the malformed boxes are expressed as a box of size `1 x 1`. Required.
+`roi_height = max(spatial_scale * (y_2 - y_1), 1.0)`, so the malformed boxes are expressed as a box of size `1 x 1`. **Required.**
-* **3**: 1D input tensor of shape `[NUM_ROIS]` with batch indices of type *IND_T*. Required.
+* **3**: 1D input tensor of shape `[NUM_ROIS]` with batch indices of type *IND_T*. **Required.**
**Outputs**:
diff --git a/docs/ops/detection/ROIPooling_1.md b/docs/ops/detection/ROIPooling_1.md
index 7114aee0d6c..31593d73ead 100644
--- a/docs/ops/detection/ROIPooling_1.md
+++ b/docs/ops/detection/ROIPooling_1.md
@@ -52,9 +52,9 @@ The box height and width have different representation based on **method** attri
**Inputs**:
-* **1**: 4D input tensor of shape `[N, C, H, W]` with feature maps of type *T*. Required.
+* **1**: 4D input tensor of shape `[N, C, H, W]` with feature maps of type *T*. **Required.**
-* **2**: 2D input tensor of shape `[NUM_ROIS, 5]` describing region of interest box consisting of 5 element tuples of type *T*: `[batch_id, x_1, y_1, x_2, y_2]`. Required.
+* **2**: 2D input tensor of shape `[NUM_ROIS, 5]` describing region of interest box consisting of 5 element tuples of type *T*: `[batch_id, x_1, y_1, x_2, y_2]`. **Required.**
Batch indices must be in the range of `[0, N-1]`.
diff --git a/docs/ops/image/Interpolate_1.md b/docs/ops/image/Interpolate_1.md
index a4c5e77a43f..7f742abc534 100644
--- a/docs/ops/image/Interpolate_1.md
+++ b/docs/ops/image/Interpolate_1.md
@@ -60,9 +60,9 @@ This is a scalar that specifies padding for each spatial dimension.
**Inputs**
-* **1**: `data` - Input tensor with data for interpolation. Type of elements is any supported floating point type. Required.
+* **1**: `data` - Input tensor with data for interpolation. Type of elements is any supported floating point type. **Required.**
-* **2**: `target_spatial_shape` - 1D tensor describing output shape for spatial axes. Number of elements matches the number of indices in *axes* attribute, the order matches as well. Required.
+* **2**: `target_spatial_shape` - 1D tensor describing output shape for spatial axes. Number of elements matches the number of indices in *axes* attribute, the order matches as well. **Required.**
**Outputs**
diff --git a/docs/ops/infrastructure/Assign_3.md b/docs/ops/infrastructure/Assign_3.md
index 5d74add67b3..c7256e09024 100644
--- a/docs/ops/infrastructure/Assign_3.md
+++ b/docs/ops/infrastructure/Assign_3.md
@@ -23,7 +23,7 @@ declared in `variable_id` and returns an error otherwise.
**Inputs**
-* **1**: `new_value` - input tensor of any supported type. **Required**.
+* **1**: `new_value` - input tensor of any supported type. **Required.**
**Outputs**
diff --git a/docs/ops/infrastructure/Loop_5.md b/docs/ops/infrastructure/Loop_5.md
index 25b603aae4f..784dc4ca294 100644
--- a/docs/ops/infrastructure/Loop_5.md
+++ b/docs/ops/infrastructure/Loop_5.md
@@ -4,7 +4,7 @@
**Category**: Infrastructure
-**Short description**: *Loop* operation performs recurrent execution of the network, which is described in the `body`, iterating through the data.
+**Short description**: *Loop* operation performs recurrent execution of the network, which is described in the `body`, iterating through the data.
The operation has similar semantic to the ONNX* Loop [operation](https://github.com/onnx/onnx/blob/master/docs/Changelog.md#Loop-13).
**Detailed description**
@@ -20,21 +20,21 @@ There are several combinations of these two inputs `(trip_count, execution condi
```
input (-1, true) // infinite loop
bool cond = true;
- for (int i = 0; cond; ++i)
+ for (int i = 0; cond; ++i)
{
cond = true; // sub-graph calculating condition must always return "true"!
}
input (-1, cond) // while loop
bool cond = ...;
- for (int i = 0; cond; ++i)
+ for (int i = 0; cond; ++i)
{
cond = ...;
}
input (-1, true) // do-while loop
bool cond = true;
- for (int i = 0; cond; ++i)
+ for (int i = 0; cond; ++i)
{
cond = ...;
}
@@ -42,7 +42,7 @@ There are several combinations of these two inputs `(trip_count, execution condi
input (trip_count, true) // for loop
int trip_count = ...;
bool cond = true;
- for (int i = 0; i < trip_count; ++i)
+ for (int i = 0; i < trip_count; ++i)
{
cond = true; // sub-graph calculating condition must always return "true"!
}
@@ -50,7 +50,7 @@ There are several combinations of these two inputs `(trip_count, execution condi
input (trip_count, cond) // for with condition
int trip_count = ...;
bool cond = ...;
- for (int i = 0; i < trip_count && cond; ++i)
+ for (int i = 0; i < trip_count && cond; ++i)
{
cond = ...;
}
@@ -133,11 +133,11 @@ Loop operation description in the IR also has several special sections: `body`,
**Loop Inputs**
-* **Trip count**: A scalar or 1D tensor with 1 element of `int64` or `int32` type specifying maximum number of iterations. *Required*.
+* **Trip count**: A scalar or 1D tensor with 1 element of `int64` or `int32` type specifying maximum number of iterations. **Required.**
-* **ExecutionCondition**: A scalar or 1D tensor with 1 element of `boolean` type specifying whether to execute the first iteration or not. `True` value means to execute the 1st iteration. *Required*.
+* **ExecutionCondition**: A scalar or 1D tensor with 1 element of `boolean` type specifying whether to execute the first iteration or not. `True` value means to execute the 1st iteration. **Required.**
-* **Multiple other inputs**: tensors of different types and shapes. *Optional*.
+* **Multiple other inputs**: tensors of different types and shapes. **Optional.**
**Loop Outputs**
@@ -146,12 +146,12 @@ Loop operation description in the IR also has several special sections: `body`,
**Body Inputs**
-* **Multiple inputs**: tensors of different types and shapes except the one corresponding to the current iteration number. This input is marked in the port_map with attribute `purpose = "current_iteration"` and produces a scalar or 1D tensor with 1 element of `int64` or `int32` type. *Optional*.
+* **Multiple inputs**: tensors of different types and shapes except the one corresponding to the current iteration number. This input is marked in the port_map with attribute `purpose = "current_iteration"` and produces a scalar or 1D tensor with 1 element of `int64` or `int32` type. **Optional.**
**Body Outputs**
-* **Multiple outputs**: Results of execution of the `body`. Tensors of any type and shape except the one corresponding to the output with execution condition. This output is marked in the port_map with attribute `purpose = "execution_condition"` and is mandatory and produces a scalar or 1D tensor with 1 element of `boolean` type. Other outputs are optional.
+* **Multiple outputs**: Results of execution of the `body`. Tensors of any type and shape except the one corresponding to the output with execution condition. This output is marked in the port_map with attribute `purpose = "execution_condition"` and is mandatory and produces a scalar or 1D tensor with 1 element of `boolean` type. Other outputs are optional.
**Examples**
diff --git a/docs/ops/infrastructure/ReadValue_3.md b/docs/ops/infrastructure/ReadValue_3.md
index c60ac71dd84..604f577344b 100644
--- a/docs/ops/infrastructure/ReadValue_3.md
+++ b/docs/ops/infrastructure/ReadValue_3.md
@@ -25,7 +25,7 @@ with the shape and type from the 1 input.
**Inputs**
-* **1**: `init_value` - input tensor with constant values of any supported type. **Required**.
+* **1**: `init_value` - input tensor with constant values of any supported type. **Required.**
**Outputs**
diff --git a/docs/ops/logical/LogicalAnd_1.md b/docs/ops/logical/LogicalAnd_1.md
index 9312f3871a6..4f39b236fef 100644
--- a/docs/ops/logical/LogicalAnd_1.md
+++ b/docs/ops/logical/LogicalAnd_1.md
@@ -20,8 +20,8 @@
**Inputs**
-* **1**: A tensor of type *T*. **Required**.
-* **2**: A tensor of type *T*. **Required**.
+* **1**: A tensor of type *T*. **Required.**
+* **2**: A tensor of type *T*. **Required.**
**Outputs**
diff --git a/docs/ops/logical/LogicalOr_1.md b/docs/ops/logical/LogicalOr_1.md
index 0e11560cc4b..ac4810ec74e 100644
--- a/docs/ops/logical/LogicalOr_1.md
+++ b/docs/ops/logical/LogicalOr_1.md
@@ -20,8 +20,8 @@
**Inputs**
-* **1**: A tensor of type *T*. **Required**.
-* **2**: A tensor of type *T*. **Required**.
+* **1**: A tensor of type *T*. **Required.**
+* **2**: A tensor of type *T*. **Required.**
**Outputs**
diff --git a/docs/ops/logical/LogicalXor_1.md b/docs/ops/logical/LogicalXor_1.md
index d6b1e53fb8d..61bfa9bc25c 100644
--- a/docs/ops/logical/LogicalXor_1.md
+++ b/docs/ops/logical/LogicalXor_1.md
@@ -20,8 +20,8 @@
**Inputs**
-* **1**: A tensor of type *T*. **Required**.
-* **2**: A tensor of type *T*. **Required**.
+* **1**: A tensor of type *T*. **Required.**
+* **2**: A tensor of type *T*. **Required.**
**Outputs**
diff --git a/docs/ops/matrix/MatMul_1.md b/docs/ops/matrix/MatMul_1.md
index 191a94c9858..5b39d55b9e4 100644
--- a/docs/ops/matrix/MatMul_1.md
+++ b/docs/ops/matrix/MatMul_1.md
@@ -15,7 +15,7 @@ Before matrix multiplication, there is an implicit shape alignment for input arg
1. Applying transpositions specified by optional `transpose_a` and `transpose_b` attributes. Only the two right-most dimensions are transposed, other dimensions remain the same. Transpose attributes are ignored for 1D tensors.
2. One-dimensional tensors unsqueezing is applied for each input independently. The axes inserted in this step are not included in the output shape.
- * If rank of the **first** input is equal to 1, it is always unsqueezed to 2D tensor **row vector** (regardless of `transpose_a`) by adding axes with size 1 at ROW_INDEX_DIM, to the **left** of the shape. For example `[S]` will be reshaped to `[1, S]`.
+ * If rank of the **first** input is equal to 1, it is always unsqueezed to 2D tensor **row vector** (regardless of `transpose_a`) by adding axes with size 1 at ROW_INDEX_DIM, to the **left** of the shape. For example `[S]` will be reshaped to `[1, S]`.
* If rank of the **second** input is equal to 1, it is always unsqueezed to 2D tensor **column vector** (regardless of `transpose_b`) by adding axes with size 1 at COL_INDEX_DIM, to the **right** of the shape. For example `[S]` will be reshaped to `[S, 1]`.
3. If ranks of input arguments are different after steps 1 and 2, the tensor with a smaller rank is unsqueezed from the left side of the shape by necessary number of axes to make both shapes of the same rank.
@@ -57,9 +57,9 @@ Two attributes, `transpose_a` and `transpose_b` specify embedded transposition f
**Inputs**:
-* **1**: Tensor of type *T* with matrices A. Rank >= 1. Required.
+* **1**: Tensor of type *T* with matrices A. Rank >= 1. **Required.**
-* **2**: Tensor of type *T* with matrices B. Rank >= 1. Required.
+* **2**: Tensor of type *T* with matrices B. Rank >= 1. **Required.**
**Outputs**
@@ -204,4 +204,4 @@ Two attributes, `transpose_a` and `transpose_b` specify embedded transposition f
-```
\ No newline at end of file
+```
diff --git a/docs/ops/movement/BatchToSpace_2.md b/docs/ops/movement/BatchToSpace_2.md
index 85fdd781f68..8ebe11861d1 100644
--- a/docs/ops/movement/BatchToSpace_2.md
+++ b/docs/ops/movement/BatchToSpace_2.md
@@ -63,10 +63,10 @@ Where
10
- 2
+ 2
- 2
+ 22
@@ -76,7 +76,7 @@ Where
-```
\ No newline at end of file
+```
diff --git a/docs/ops/movement/Roll_7.md b/docs/ops/movement/Roll_7.md
index fb338731fd5..8633d7bc963 100644
--- a/docs/ops/movement/Roll_7.md
+++ b/docs/ops/movement/Roll_7.md
@@ -10,7 +10,7 @@
Example 1. *Roll* output with `shift` = 1, `axes` = 0:
-```
+```
data = [[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
@@ -23,7 +23,7 @@ output = [[10, 11, 12],
Example 2. *Roll* output with `shift` = [-1, 2], `axes` = [0, 1]:
-```
+```
data = [[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
@@ -36,7 +36,7 @@ output = [[ 5, 6, 4],
Example 3. *Roll* output with `shift` = [1, 2, 1], `axes` = [0, 1, 0]:
-```
+```
data = [[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
diff --git a/docs/ops/movement/ScatterElementsUpdate_3.md b/docs/ops/movement/ScatterElementsUpdate_3.md
index 994715d2142..5a7a81f76b5 100644
--- a/docs/ops/movement/ScatterElementsUpdate_3.md
+++ b/docs/ops/movement/ScatterElementsUpdate_3.md
@@ -18,23 +18,23 @@ output[i][indices[i][j][k]][k] = updates[i][j][k] if axis = 1,
output[i][j][indices[i][j][k]] = updates[i][j][k] if axis = 2
```
-`update` tensor dimensions are less or equal to the corresponding `data` tensor dimensions.
+`update` tensor dimensions are less or equal to the corresponding `data` tensor dimensions.
**Attributes**: *ScatterElementsUpdate* does not have attributes.
**Inputs**:
-* **1**: `data` tensor of arbitrary rank `r` and of type *T*. Required.
+* **1**: `data` tensor of arbitrary rank `r` and of type *T*. **Required.**
* **2**: `indices` tensor with indices of type *T_IND*. The rank of the tensor is equal to the rank of `data` tensor.
All index values are expected to be within bounds `[0, s - 1]` along axis of size `s`. If multiple indices point to the
same output location then the order of updating the values is undefined. If an index points to non-existing output
-tensor element or is negative then exception is raised. Required.
+tensor element or is negative then exception is raised. **Required.**
-* **3**: `updates` tensor of shape equal to the shape of `indices` tensor and of type *T*. Required.
+* **3**: `updates` tensor of shape equal to the shape of `indices` tensor and of type *T*. **Required.**
* **4**: `axis` tensor with scalar or 1D tensor with one element of type *T_AXIS* specifying axis for scatter.
-The value can be in range `[-r, r - 1]` where `r` is the rank of `data`. Required.
+The value can be in range `[-r, r - 1]` where `r` is the rank of `data`. **Required.**
**Outputs**:
diff --git a/docs/ops/movement/ScatterNDUpdate_3.md b/docs/ops/movement/ScatterNDUpdate_3.md
index 5dd1ed9a462..42376bcb12e 100644
--- a/docs/ops/movement/ScatterNDUpdate_3.md
+++ b/docs/ops/movement/ScatterNDUpdate_3.md
@@ -4,14 +4,14 @@
**Category**: Data movement operations
-**Short description**: Creates a copy of the first input tensor with updated elements specified with second and third input tensors.
+**Short description**: Creates a copy of the first input tensor with updated elements specified with second and third input tensors.
-**Detailed description**: The operation produces a copy of `data` tensor and updates its value to values specified
-by `updates` at specific index positions specified by `indices`. The output shape is the same as the shape of `data`.
+**Detailed description**: The operation produces a copy of `data` tensor and updates its value to values specified
+by `updates` at specific index positions specified by `indices`. The output shape is the same as the shape of `data`.
`indices` tensor must not have duplicate entries. In case of duplicate entries in `indices` the result is undefined.
-The last dimension of `indices` can be at most the rank of `data.shape`.
-The last dimension of `indices` corresponds to indices into elements if `indices.shape[-1]` = `data.shape.rank` or slices
+The last dimension of `indices` can be at most the rank of `data.shape`.
+The last dimension of `indices` corresponds to indices into elements if `indices.shape[-1]` = `data.shape.rank` or slices
if `indices.shape[-1]` < `data.shape.rank`. `updates` is a tensor with shape `indices.shape[:-1] + data.shape[indices.shape[-1]:]`
Example 1 that shows update of four single elements in `data`:
@@ -44,11 +44,11 @@ output = [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]],
**Inputs**:
-* **1**: `data` tensor of arbitrary rank `r` >= 1 and of type *T*. Required.
+* **1**: `data` tensor of arbitrary rank `r` >= 1 and of type *T*. **Required.**
-* **2**: `indices` tensor with indices of arbitrary rank `q` >= 1 and of type *T_IND*. All index values `i_j` in index entry `(i_0, i_1, ...,i_k)` (where `k = indices.shape[-1]`) must be within bounds `[0, s_j - 1]` where `s_j = data.shape[j]`. `k` must be at most `r`. Required.
+* **2**: `indices` tensor with indices of arbitrary rank `q` >= 1 and of type *T_IND*. All index values `i_j` in index entry `(i_0, i_1, ...,i_k)` (where `k = indices.shape[-1]`) must be within bounds `[0, s_j - 1]` where `s_j = data.shape[j]`. `k` must be at most `r`. **Required.**
-* **3**: `updates` tensor of rank `r - indices.shape[-1] + q - 1` of type *T*. If expected `updates` rank is 0D it can be a tensor with single element. Required.
+* **3**: `updates` tensor of rank `r - indices.shape[-1] + q - 1` of type *T*. If expected `updates` rank is 0D it can be a tensor with single element. **Required.**
**Outputs**:
diff --git a/docs/ops/movement/ScatterUpdate_3.md b/docs/ops/movement/ScatterUpdate_3.md
index 2b71d74a8a4..74903e21117 100644
--- a/docs/ops/movement/ScatterUpdate_3.md
+++ b/docs/ops/movement/ScatterUpdate_3.md
@@ -31,17 +31,17 @@ but allows scattering for the arbitrary axis.
**Inputs**:
-* **1**: `data` tensor of arbitrary rank `r` and of type *T*. Required.
+* **1**: `data` tensor of arbitrary rank `r` and of type *T*. **Required.**
* **2**: `indices` tensor with indices of type *T_IND*.
All index values are expected to be within bounds `[0, s - 1]` along axis of size `s`. If multiple indices point to the
same output location then the order of updating the values is undefined. If an index points to non-existing output
-tensor element or is negative then an exception is raised. Required.
+tensor element or is negative then an exception is raised. **Required.**
-* **3**: `updates` tensor of type *T*. Required.
+* **3**: `updates` tensor of type *T*. **Required.**
* **4**: `axis` tensor with scalar or 1D tensor with one element of type *T_AXIS* specifying axis for scatter.
-The value can be in range `[-r, r - 1]` where `r` is the rank of `data`. Required.
+The value can be in range `[-r, r - 1]` where `r` is the rank of `data`. **Required.**
**Outputs**:
diff --git a/docs/ops/movement/ShuffleChannels_1.md b/docs/ops/movement/ShuffleChannels_1.md
index e97f3350d2a..9970fed7c6a 100644
--- a/docs/ops/movement/ShuffleChannels_1.md
+++ b/docs/ops/movement/ShuffleChannels_1.md
@@ -41,7 +41,7 @@ where `group` is the layer attribute described below.
* **Range of values**: an integer number in the range `[-rank(data_shape), rank(data_shape) - 1]`
* **Type**: `int`
* **Default value**: 1
- * **Required**: *No*
+ * **Required**: *no*
* *group*
@@ -49,7 +49,7 @@ where `group` is the layer attribute described below.
* **Range of values**: a positive integer in the range `[1, data_shape[axis]]`
* **Type**: `int`
* **Default value**: 1
- * **Required**: *No*
+ * **Required**: *no*
**Inputs**:
diff --git a/docs/ops/movement/SpaceToBatch_2.md b/docs/ops/movement/SpaceToBatch_2.md
index eea9df8ced1..0820999ba2f 100644
--- a/docs/ops/movement/SpaceToBatch_2.md
+++ b/docs/ops/movement/SpaceToBatch_2.md
@@ -4,7 +4,7 @@
**Category**: *Data movement*
-**Short description**: The *SpaceToBatch* operation divides "spatial" dimensions `[1, ..., N - 1]` of the `data` input into a grid of blocks of shape `block_shape`, and interleaves these blocks with the batch dimension (0) such that in the output, the spatial dimensions `[1, ..., N - 1]` correspond to the position within the grid, and the batch dimension combines both the position within a spatial block and the original batch position. Prior to division into blocks, the spatial dimensions of the input are optionally zero padded according to `pads_begin` and `pads_end`.
+**Short description**: The *SpaceToBatch* operation divides "spatial" dimensions `[1, ..., N - 1]` of the `data` input into a grid of blocks of shape `block_shape`, and interleaves these blocks with the batch dimension (0) such that in the output, the spatial dimensions `[1, ..., N - 1]` correspond to the position within the grid, and the batch dimension combines both the position within a spatial block and the original batch position. Prior to division into blocks, the spatial dimensions of the input are optionally zero padded according to `pads_begin` and `pads_end`.
**Detailed description**:
@@ -33,10 +33,10 @@ where
* **2**: `block_shape` - input 1-D tensor of *T2* type with shape `[N]` that is equal to the size of `data` input shape. All values must be >= 1. `block_shape[0]` is expected to be 1. **Required.**
* **3**: `pads_begin` - input 1-D tensor of *T2* type with shape `[N]` that is equal to the size of `data` input shape. All values must be non-negative. `pads_begin` specifies the padding for the beginning along each axis of `data` input . It is required that `block_shape[i]` divides `data_shape[i] + pads_begin[i] + pads_end[i]`. `pads_begin[0]` is expected to be 0. **Required.**
* **4**: `pads_end` - input 1-D tensor of *T2* type with shape `[N]` that is equal to the size of `data` input shape. All values must be non-negative. `pads_end` specifies the padding for the ending along each axis of `data` input. It is required that `block_shape[i]` divides `data_shape[i] + pads_begin[i] + pads_end[i]`. `pads_end[0]` is expected to be 0. **Required.**
-
+
**Outputs**
-* **1**: N-D tensor with shape `[batch * block_shape[0] * block_shape[1] * ... * block_shape[N - 1], (D_1 + pads_begin[1] + pads_end[1]) / block_shape[1], (D_2 + pads_begin[2] + pads_end[2]) / block_shape[2], ..., (D_{N -1} + pads_begin[N - 1] + pads_end[N - 1]) / block_shape[N - 1]` of the same type as `data` input.
+* **1**: N-D tensor with shape `[batch * block_shape[0] * block_shape[1] * ... * block_shape[N - 1], (D_1 + pads_begin[1] + pads_end[1]) / block_shape[1], (D_2 + pads_begin[2] + pads_end[2]) / block_shape[2], ..., (D_{N -1} + pads_begin[N - 1] + pads_end[N - 1]) / block_shape[N - 1]` of the same type as `data` input.
**Types**
@@ -54,9 +54,9 @@ where
1033
-
+
- 5
+ 55
diff --git a/docs/ops/movement/VariadicSplit_1.md b/docs/ops/movement/VariadicSplit_1.md
index 9b2392d6fc9..d14bce1324f 100644
--- a/docs/ops/movement/VariadicSplit_1.md
+++ b/docs/ops/movement/VariadicSplit_1.md
@@ -23,7 +23,7 @@ Where D is the rank of input tensor `data`. The sum of elements in `split_length
* **1**: `data`. A tensor of type `T1` and arbitrary shape. **Required.**
-* **2**: `axis`. Axis along `data` to split. A scalar or tensor with shape `[1]` of type `T2` with value from range `-rank(data) .. rank(data)-1`. Negative values address dimensions from the end.
+* **2**: `axis`. Axis along `data` to split. A scalar or tensor with shape `[1]` of type `T2` with value from range `-rank(data) .. rank(data)-1`. Negative values address dimensions from the end.
**Required.**
* **3**: `split_lengths`. A list containing the dimension values of each output tensor shape along the split `axis`. A 1D tensor of type `T2`. The number of elements in `split_lengths` determines the number of outputs. The sum of elements in `split_lengths` must match `data.shape[axis]`. In addition `split_lengths` can contain a single `-1` element, which means, all remaining items along specified `axis` that are not consumed by other parts. **Required.**
@@ -107,4 +107,4 @@ Where D is the rank of input tensor `data`. The sum of elements in `split_length
-```
\ No newline at end of file
+```
diff --git a/docs/ops/normalization/GRN_1.md b/docs/ops/normalization/GRN_1.md
index 7a068e8e3c9..7248caa41ef 100644
--- a/docs/ops/normalization/GRN_1.md
+++ b/docs/ops/normalization/GRN_1.md
@@ -23,7 +23,7 @@
**Inputs**
-* **1**: Input tensor with element of any floating point type and `2 <= rank <=4`. Required.
+* **1**: Input tensor with element of any floating point type and `2 <= rank <=4`. **Required.**
**Outputs**
diff --git a/docs/ops/normalization/MVN_1.md b/docs/ops/normalization/MVN_1.md
index 4f0c5dec07c..cd28c217960 100644
--- a/docs/ops/normalization/MVN_1.md
+++ b/docs/ops/normalization/MVN_1.md
@@ -48,7 +48,7 @@ o_{i}=\frac{o_{i}}{\sum \sqrt {o_{k}^2}+\epsilon}
**Inputs**
-* **1**: 4D or 5D input tensor of any floating point type. Required.
+* **1**: 4D or 5D input tensor of any floating point type. **Required.**
**Outputs**
diff --git a/docs/ops/normalization/MVN_6.md b/docs/ops/normalization/MVN_6.md
index 3d9f04f19e9..caf540b89a5 100644
--- a/docs/ops/normalization/MVN_6.md
+++ b/docs/ops/normalization/MVN_6.md
@@ -53,9 +53,9 @@ o_{i}=\frac{o_{i}}{\sqrt {\sum {o_{k}^2}}+\epsilon}
**Inputs**
-* **1**: `data` - Input tensor to be normalized. Type *T*. Required.
+* **1**: `data` - Input tensor to be normalized. Type *T*. **Required.**
-* **2**: `axes` - 1D tensor which specifies indices of dimensions in `data` that define normalization slices. Allowed range of axes is `[-r; r-1]` where `r = rank(data)`, the order can be not sorted. Negative value means counting dimensions from the back. Type *T_IND*. Required.
+* **2**: `axes` - 1D tensor which specifies indices of dimensions in `data` that define normalization slices. Allowed range of axes is `[-r; r-1]` where `r = rank(data)`, the order can be not sorted. Negative value means counting dimensions from the back. Type *T_IND*. **Required.**
**Outputs**
diff --git a/docs/ops/pooling/AdaptiveAvgPool_8.md b/docs/ops/pooling/AdaptiveAvgPool_8.md
index beb2ec30492..cff1e91e92c 100644
--- a/docs/ops/pooling/AdaptiveAvgPool_8.md
+++ b/docs/ops/pooling/AdaptiveAvgPool_8.md
@@ -28,8 +28,8 @@ Output(i,j,k) = \frac{Input[d_{start}:d_{end}, h_{start}:h_{end}, w_{start}:w_{e
**Inputs**:
-* **1**: 3D, 4D, or 5D input tensor of shape `[N, C, H]`, `[N, C, H, W]` or `[N, C, D, H, W]` and type *T*. Required.
-* **2**: 1D tensor describing output shape for spatial dimensions. Can be `[H_out]` for 3D input, `[H_out, W_out]` for 4D input, `[D_out, H_out, W_out]` for 5D input and of type *T_SHAPE*. Required.
+* **1**: 3D, 4D, or 5D input tensor of shape `[N, C, H]`, `[N, C, H, W]` or `[N, C, D, H, W]` and type *T*. **Required.**
+* **2**: 1D tensor describing output shape for spatial dimensions. Can be `[H_out]` for 3D input, `[H_out, W_out]` for 4D input, `[D_out, H_out, W_out]` for 5D input and of type *T_SHAPE*. **Required.**
**Outputs**:
@@ -45,7 +45,7 @@ Output(i,j,k) = \frac{Input[d_{start}:d_{end}, h_{start}:h_{end}, w_{start}:w_{e
```xml
-
+
13
@@ -53,7 +53,7 @@ Output(i,j,k) = \frac{Input[d_{start}:d_{end}, h_{start}:h_{end}, w_{start}:w_{e
32
-
+
2
diff --git a/docs/ops/pooling/AdaptiveMaxPool_8.md b/docs/ops/pooling/AdaptiveMaxPool_8.md
index 286e1ab78a2..a86c3f67ac0 100644
--- a/docs/ops/pooling/AdaptiveMaxPool_8.md
+++ b/docs/ops/pooling/AdaptiveMaxPool_8.md
@@ -34,12 +34,12 @@ Output(i,j,k) = max(Input[d_{start}:d_{end}, h_{start}:h_{end}, w_{start}:w_{end
* **Range of values**: "i64" or "i32"
* **Type**: string
* **Default value**: "i64"
- * **Required**: *No*
+ * **Required**: *no*
**Inputs**:
-* **1**: 3D, 4D, or 5D input tensor of shape `[N, C, H]`, `[N, C, H, W]` or `[N, C, D, H, W]` and type *T*. Required.
-* **2**: 1D tensor describing output shape for spatial dimensions. Can be `[H_out]` for 3D input, `[H_out, W_out]` for 4D input, `[D_out, H_out, W_out]` for 5D input and of type *T_SHAPE*. Required.
+* **1**: 3D, 4D, or 5D input tensor of shape `[N, C, H]`, `[N, C, H, W]` or `[N, C, D, H, W]` and type *T*. **Required.**
+* **2**: 1D tensor describing output shape for spatial dimensions. Can be `[H_out]` for 3D input, `[H_out, W_out]` for 4D input, `[D_out, H_out, W_out]` for 5D input and of type *T_SHAPE*. **Required.**
**Outputs**:
@@ -56,7 +56,7 @@ Output(i,j,k) = max(Input[d_{start}:d_{end}, h_{start}:h_{end}, w_{start}:w_{end
```xml
-
+
13
@@ -64,7 +64,7 @@ Output(i,j,k) = max(Input[d_{start}:d_{end}, h_{start}:h_{end}, w_{start}:w_{end
32
-
+
2
diff --git a/docs/ops/pooling/AvgPool_1.md b/docs/ops/pooling/AvgPool_1.md
index c698f38afd1..705c86d5b2d 100644
--- a/docs/ops/pooling/AvgPool_1.md
+++ b/docs/ops/pooling/AvgPool_1.md
@@ -74,7 +74,7 @@
**Inputs**:
-* **1**: 3D, 4D or 5D input tensor. Required.
+* **1**: 3D, 4D or 5D input tensor. **Required.**
**Outputs**:
* **1**: Input shape can be either `[N,C,H]`, `[N,C,H,W]` or `[N,C,H,W,D]`. Then the corresponding output shape is `[N,C,H_out]`, `[N,C,H_out,W_out]` or `[N,C,H_out,W_out,D_out]`.
diff --git a/docs/ops/pooling/MaxPool_1.md b/docs/ops/pooling/MaxPool_1.md
index 8e774821310..b21c24af593 100644
--- a/docs/ops/pooling/MaxPool_1.md
+++ b/docs/ops/pooling/MaxPool_1.md
@@ -63,7 +63,7 @@
**Inputs**:
-* **1**: 3D, 4D or 5D input tensor of type *T*. Required.
+* **1**: 3D, 4D or 5D input tensor of type *T*. **Required.**
**Outputs**:
* **1**: Input shape can be either `[N, C, H]`, `[N, C, H, W]` or `[N, C, H, W, D]`. Then the corresponding output shape will be `[N, C, H_out]`, `[N, C, H_out, W_out]` or `[N, C, H_out, W_out, D_out]`. Output tensor has the same data type as input tensor.
diff --git a/docs/ops/quantization/FakeQuantize_1.md b/docs/ops/quantization/FakeQuantize_1.md
index 9a203283974..099cdecc9c5 100644
--- a/docs/ops/quantization/FakeQuantize_1.md
+++ b/docs/ops/quantization/FakeQuantize_1.md
@@ -36,29 +36,34 @@ else:
* **Description**: specifies rules used for auto-broadcasting of input tensors.
* **Range of values**:
* *none* - no auto-broadcasting is allowed, all input shapes should match
- * *numpy* - numpy broadcasting rules, aligned with ONNX Broadcasting. Description is available in ONNX docs
- * *pdpd* - PaddlePaddle-style implicit broadcasting.
+ * *numpy* - numpy broadcasting rules, description is available in [Broadcast Rules For Elementwise Operations](../broadcast_rules.md),
+ * *pdpd* - PaddlePaddle-style implicit broadcasting, description is available in [Broadcast Rules For Elementwise Operations](../broadcast_rules.md).
* **Type**: string
* **Default value**: "numpy"
* **Required**: *no*
**Inputs**:
-* **1**: `X` - multidimensional input tensor of floating type to be quantized. Required.
+* **1**: `X` - tensor of type *T_F* and arbitrary shape. **Required.**
-* **2**: `input_low` - minimum limit for input value. The shape must be broadcastable to the shape of *X*. Required.
+* **2**: `input_low` - tensor of type *T_F* with minimum limit for input value. The shape must be broadcastable to the shape of *X*. **Required.**
-* **3**: `input_high` - maximum limit for input value. Can be the same as `input_low` for binarization. The shape must be broadcastable to the shape of *X*. Required.
+* **3**: `input_high` - tensor of type *T_F* with maximum limit for input value. Can be the same as `input_low` for binarization. The shape must be broadcastable to the shape of *X*. **Required.**
-* **4**: `output_low` - minimum quantized value. The shape must be broadcastable to the shape of *X*. Required.
+* **4**: `output_low` - tensor of type *T_F* with minimum quantized value. The shape must be broadcastable to the shape of *X*. **Required.**
-* **5**: `output_high` - maximum quantized value. The shape must be broadcastable to the of *X*. Required.
+* **5**: `output_high` - tensor of type *T_F* with maximum quantized value. The shape must be broadcastable to the of *X*. **Required.**
**Outputs**:
-* **1**: `Y` - resulting tensor with shape and type matching the 1st input tensor *X*.
+* **1**: output tensor of type *T_F* with shape and type matching the 1st input tensor *X*.
+
+**Types**
+
+* *T_F*: any supported floating point type.
**Example**
+
```xml
diff --git a/docs/ops/reduction/ReduceL1_4.md b/docs/ops/reduction/ReduceL1_4.md
index 03c00b5299c..bb8305f8319 100644
--- a/docs/ops/reduction/ReduceL1_4.md
+++ b/docs/ops/reduction/ReduceL1_4.md
@@ -17,7 +17,7 @@ where indices i0, ..., iN run through all valid indices for input `data`, and fi
Particular cases:
-1. If `axes` is an empty list, *ReduceL1* corresponds to the identity operation.
+1. If `axes` is an empty list, *ReduceL1* corresponds to the identity operation.
2. If `axes` contains all dimensions of input `data`, a single reduction value is calculated for the entire input tensor.
**Attributes**
@@ -141,4 +141,4 @@ Particular cases:
-```
\ No newline at end of file
+```
diff --git a/docs/ops/reduction/ReduceL2_4.md b/docs/ops/reduction/ReduceL2_4.md
index 67150d307d6..ccf7fb5858d 100644
--- a/docs/ops/reduction/ReduceL2_4.md
+++ b/docs/ops/reduction/ReduceL2_4.md
@@ -17,7 +17,7 @@ where indices i0, ..., iN run through all valid indices for input `data`, and fi
Particular cases:
-1. If `axes` is an empty list, *ReduceL2* corresponds to the identity operation.
+1. If `axes` is an empty list, *ReduceL2* corresponds to the identity operation.
2. If `axes` contains all dimensions of input `data`, a single reduction value is calculated for the entire input tensor.
**Attributes**
@@ -141,4 +141,4 @@ Particular cases:
-```
\ No newline at end of file
+```
diff --git a/docs/ops/reduction/ReduceLogicalAnd_1.md b/docs/ops/reduction/ReduceLogicalAnd_1.md
index 3ac75a2252a..c8718a1a4d3 100644
--- a/docs/ops/reduction/ReduceLogicalAnd_1.md
+++ b/docs/ops/reduction/ReduceLogicalAnd_1.md
@@ -17,7 +17,7 @@ where indices i0, ..., iN run through all valid indices for input `data`, and *l
Particular cases:
-1. If `axes` is an empty list, *ReduceLogicalAnd* corresponds to the identity operation.
+1. If `axes` is an empty list, *ReduceLogicalAnd* corresponds to the identity operation.
2. If `axes` contains all dimensions of input `data`, a single reduction value is calculated for the entire input tensor.
**Attributes**
@@ -141,4 +141,4 @@ Particular cases:
-```
\ No newline at end of file
+```
diff --git a/docs/ops/reduction/ReduceLogicalOr_1.md b/docs/ops/reduction/ReduceLogicalOr_1.md
index 4b52c1238ba..8506b786613 100644
--- a/docs/ops/reduction/ReduceLogicalOr_1.md
+++ b/docs/ops/reduction/ReduceLogicalOr_1.md
@@ -17,7 +17,7 @@ where indices i0, ..., iN run through all valid indices for input `data`, and *l
Particular cases:
-1. If `axes` is an empty list, *ReduceLogicalOr* corresponds to the identity operation.
+1. If `axes` is an empty list, *ReduceLogicalOr* corresponds to the identity operation.
2. If `axes` contains all dimensions of input `data`, a single reduction value is calculated for the entire input tensor.
**Attributes**
@@ -141,4 +141,4 @@ Particular cases:
-```
\ No newline at end of file
+```
diff --git a/docs/ops/reduction/ReduceMax_1.md b/docs/ops/reduction/ReduceMax_1.md
index c9822328db1..5f0bd684310 100644
--- a/docs/ops/reduction/ReduceMax_1.md
+++ b/docs/ops/reduction/ReduceMax_1.md
@@ -17,7 +17,7 @@ where indices i0, ..., iN run through all valid indices for input `data`, and fi
Particular cases:
-1. If `axes` is an empty list, *ReduceMax* corresponds to the identity operation.
+1. If `axes` is an empty list, *ReduceMax* corresponds to the identity operation.
2. If `axes` contains all dimensions of input `data`, a single reduction value is calculated for the entire input tensor.
**Attributes**
@@ -141,4 +141,4 @@ Particular cases:
-```
\ No newline at end of file
+```
diff --git a/docs/ops/reduction/ReduceMean_1.md b/docs/ops/reduction/ReduceMean_1.md
index d7aa0ca57c4..3e66f20fb36 100644
--- a/docs/ops/reduction/ReduceMean_1.md
+++ b/docs/ops/reduction/ReduceMean_1.md
@@ -17,8 +17,8 @@ where indices i0, ..., iN run through all valid indices for input `data`, and fi
Particular cases:
-1. If `axes` is an empty list, *ReduceMean* corresponds to the identity operation.
-2. If `axes` contains all dimensions of input `data`, a single reduction value is calculated for the entire input tensor.
+1. If `axes` is an empty list, *ReduceMean* corresponds to the identity operation.
+2. If `axes` contains all dimensions of input `data`, a single reduction value is calculated for the entire input tensor.
**Attributes**
@@ -141,4 +141,4 @@ Particular cases:
-```
\ No newline at end of file
+```
diff --git a/docs/ops/reduction/ReduceMin_1.md b/docs/ops/reduction/ReduceMin_1.md
index 705d1fa442e..3d2a37d7ae2 100644
--- a/docs/ops/reduction/ReduceMin_1.md
+++ b/docs/ops/reduction/ReduceMin_1.md
@@ -17,7 +17,7 @@ where indices i0, ..., iN run through all valid indices for input `data`, and fi
Particular cases:
-1. If `axes` is an empty list, *ReduceMin* corresponds to the identity operation.
+1. If `axes` is an empty list, *ReduceMin* corresponds to the identity operation.
2. If `axes` contains all dimensions of input `data`, a single reduction value is calculated for the entire input tensor.
**Attributes**
@@ -141,4 +141,4 @@ Particular cases:
-```
\ No newline at end of file
+```
diff --git a/docs/ops/reduction/ReduceProd_1.md b/docs/ops/reduction/ReduceProd_1.md
index 019d648b34a..4571b4ac194 100644
--- a/docs/ops/reduction/ReduceProd_1.md
+++ b/docs/ops/reduction/ReduceProd_1.md
@@ -17,8 +17,8 @@ where indices i0, ..., iN run through all valid indices for input `data`, and mu
Particular cases:
-1. If `axes` is an empty list, *ReduceProd* corresponds to the identity operation.
-2. If `axes` contains all dimensions of input `data`, a single reduction value is calculated for the entire input tensor.
+1. If `axes` is an empty list, *ReduceProd* corresponds to the identity operation.
+2. If `axes` contains all dimensions of input `data`, a single reduction value is calculated for the entire input tensor.
**Attributes**
@@ -141,4 +141,4 @@ Particular cases:
-```
\ No newline at end of file
+```
diff --git a/docs/ops/reduction/ReduceSum_1.md b/docs/ops/reduction/ReduceSum_1.md
index a80306816a0..b4cfa0dd16e 100644
--- a/docs/ops/reduction/ReduceSum_1.md
+++ b/docs/ops/reduction/ReduceSum_1.md
@@ -17,8 +17,8 @@ where indices i0, ..., iN run through all valid indices for input `data`, and su
Particular cases:
-1. If `axes` is an empty list, *ReduceSum* corresponds to the identity operation.
-2. If `axes` contains all dimensions of input `data`, a single reduction value is calculated for the entire input tensor.
+1. If `axes` is an empty list, *ReduceSum* corresponds to the identity operation.
+2. If `axes` contains all dimensions of input `data`, a single reduction value is calculated for the entire input tensor.
**Attributes**
@@ -141,4 +141,4 @@ Particular cases:
-```
\ No newline at end of file
+```
diff --git a/docs/ops/sequence/CTCGreedyDecoderSeqLen_6.md b/docs/ops/sequence/CTCGreedyDecoderSeqLen_6.md
index c676af4dac0..bcad850c665 100644
--- a/docs/ops/sequence/CTCGreedyDecoderSeqLen_6.md
+++ b/docs/ops/sequence/CTCGreedyDecoderSeqLen_6.md
@@ -29,7 +29,7 @@ The main difference between [CTCGreedyDecoder](CTCGreedyDecoder_1.md) and CTCGre
* **Range of values**: true or false
* **Type**: `boolean`
* **Default value**: true
- * **Required**: *No*
+ * **Required**: *no*
* *classes_index_type*
@@ -37,7 +37,7 @@ The main difference between [CTCGreedyDecoder](CTCGreedyDecoder_1.md) and CTCGre
* **Range of values**: "i64" or "i32"
* **Type**: string
* **Default value**: "i32"
- * **Required**: *No*
+ * **Required**: *no*
* *sequence_length_type*
@@ -45,7 +45,7 @@ The main difference between [CTCGreedyDecoder](CTCGreedyDecoder_1.md) and CTCGre
* **Range of values**: "i64" or "i32"
* **Type**: string
* **Default value**: "i32"
- * **Required**: *No*
+ * **Required**: *no*
**Inputs**
@@ -53,7 +53,7 @@ The main difference between [CTCGreedyDecoder](CTCGreedyDecoder_1.md) and CTCGre
* **2**: `sequence_length` - input tensor of type *T_I* of shape `[N]` with sequence lengths. The values of sequence length must be less or equal to `T`. **Required.**
-* **3**: `blank_index` - scalar or 1D tensor with 1 element of type *T_I*. Specifies the class index to use for the blank class. Regardless of the value of `merge_repeated` attribute, if the output index for a given batch and time step corresponds to the `blank_index`, no new element is emitted. Default value is `C-1`. **Optional**.
+* **3**: `blank_index` - scalar or 1D tensor with 1 element of type *T_I*. Specifies the class index to use for the blank class. Regardless of the value of `merge_repeated` attribute, if the output index for a given batch and time step corresponds to the `blank_index`, no new element is emitted. Default value is `C-1`. **Optional.**
**Output**
diff --git a/docs/ops/sequence/CTCLoss_4.md b/docs/ops/sequence/CTCLoss_4.md
index c38e0a293d2..efb30c2f109 100644
--- a/docs/ops/sequence/CTCLoss_4.md
+++ b/docs/ops/sequence/CTCLoss_4.md
@@ -31,7 +31,7 @@ The decoding extracts substring of length `label_length[i]` from a target `G`, m
finds unique elements in the order of character occurrence in case *unique* equal to true.
The decoding merges repeated characters in `S` in case *ctc_merge_repeated* equal to true and removes blank characters represented by `blank_index`.
By default, `blank_index` is equal to `C-1`, where `C` is a number of classes including the blank.
-For example, in case default *ctc_merge_repeated*, *preprocess_collapse_repeated*, *unique* and `blank_index` a target sequence `G=(0,3,2,2,2,2,2,4,3)` of a length `label_length[i]=4` is processed
+For example, in case default *ctc_merge_repeated*, *preprocess_collapse_repeated*, *unique* and `blank_index` a target sequence `G=(0,3,2,2,2,2,2,4,3)` of a length `label_length[i]=4` is processed
to `(0,3,2,2)` and a path `S=(0,0,4,3,2,2,4,2,4)` of a length `logit_length[i]=9` is also processed to `(0,3,2,2)`, where `C=5`.
There exist other paths that are also aligned with `G`, for instance, `0,4,3,3,2,4,2,2,2`. Paths checked for alignment with a target `label[:,i]` must be of length `logit_length[i] = L_i`.
Compute probabilities of these aligned paths (alignments) as follows:
@@ -80,15 +80,15 @@ Having log-probabilities for aligned paths, log of summed up probabilities for t
**Inputs**
-* **1**: `logits` - Input tensor with a batch of sequences of logits. Type of elements is *T_F*. Shape of the tensor is `[N, T, C]`, where `N` is the batch size, `T` is the maximum sequence length and `C` is the number of classes including the blank. Required.
+* **1**: `logits` - Input tensor with a batch of sequences of logits. Type of elements is *T_F*. Shape of the tensor is `[N, T, C]`, where `N` is the batch size, `T` is the maximum sequence length and `C` is the number of classes including the blank. **Required.**
-* **2**: `logit_length` - 1D input tensor of type *T1* and of a shape `[N]`. The tensor must consist of non-negative values not greater than `T`. Lengths of input sequences of logits `logits[i,:,:]`. Required.
+* **2**: `logit_length` - 1D input tensor of type *T1* and of a shape `[N]`. The tensor must consist of non-negative values not greater than `T`. Lengths of input sequences of logits `logits[i,:,:]`. **Required.**
-* **3**: `labels` - 2D tensor with shape `[N, T]` of type *T2*. A length of a target sequence `labels[i,:]` is equal to `label_length[i]` and must contain of integers from a range `[0; C-1]` except `blank_index`. Required.
+* **3**: `labels` - 2D tensor with shape `[N, T]` of type *T2*. A length of a target sequence `labels[i,:]` is equal to `label_length[i]` and must contain of integers from a range `[0; C-1]` except `blank_index`. **Required.**
-* **4**: `label_length` - 1D tensor of type *T1* and of a shape `[N]`. The tensor must consist of non-negative values not greater than `T` and `label_length[i] <= logit_length[i]` for all possible `i`. Required.
+* **4**: `label_length` - 1D tensor of type *T1* and of a shape `[N]`. The tensor must consist of non-negative values not greater than `T` and `label_length[i] <= logit_length[i]` for all possible `i`. **Required.**
-* **5**: `blank_index` - Scalar of type *T2*. Set the class index to use for the blank label. Default value is `C-1`. Optional.
+* **5**: `blank_index` - Scalar of type *T2*. Set the class index to use for the blank label. Default value is `C-1`. **Optional.**
**Output**
diff --git a/docs/ops/sequence/OneHot_1.md b/docs/ops/sequence/OneHot_1.md
index 3df74c1b296..8554779efc0 100644
--- a/docs/ops/sequence/OneHot_1.md
+++ b/docs/ops/sequence/OneHot_1.md
@@ -31,10 +31,10 @@ The types of input scalars `on_value` and `off_value` should match and be equal
**Inputs**:
-* **1**: `indices`: input tensor of type *T1* with non-negative indices, behavior for negative indices is undefined. Can be 0D. Required.
-* **2**: `depth`: positive scalar (0D tensor) of type *T1* that specifies the number of classes and thus the size of the one-hot dimension. Required.
-* **3**: `on_value`: scalar (0D tensor) of type *T2* that fills the locations in output tensor specified in `indices`. Required.
-* **4**: `off_value`: scalar (0D tensor) of type *T2* that fills the locations not represented in `indices`. Required.
+* **1**: `indices`: input tensor of type *T1* with non-negative indices, behavior for negative indices is undefined. Can be 0D. **Required.**
+* **2**: `depth`: positive scalar (0D tensor) of type *T1* that specifies the number of classes and thus the size of the one-hot dimension. **Required.**
+* **3**: `on_value`: scalar (0D tensor) of type *T2* that fills the locations in output tensor specified in `indices`. **Required.**
+* **4**: `off_value`: scalar (0D tensor) of type *T2* that fills the locations not represented in `indices`. **Required.**
**Outputs**:
diff --git a/docs/ops/shape/Reshape_1.md b/docs/ops/shape/Reshape_1.md
index d90f5af6da7..ac3cbbb0707 100644
--- a/docs/ops/shape/Reshape_1.md
+++ b/docs/ops/shape/Reshape_1.md
@@ -25,9 +25,9 @@ If `special_zero` is set to `true` index of `0` cannot be larger than the rank o
**Inputs**:
-* **1**: `data` a tensor of type *T* and arbitrary shape. **Required**.
+* **1**: `data` a tensor of type *T* and arbitrary shape. **Required.**
-* **2**: `shape` 1D tensor of type *T_SHAPE* describing output shape. **Required**.
+* **2**: `shape` 1D tensor of type *T_SHAPE* describing output shape. **Required.**
**Outputs**:
diff --git a/docs/ops/shape/ShapeOf_1.md b/docs/ops/shape/ShapeOf_1.md
index d19a24d4a37..7711b7424c3 100644
--- a/docs/ops/shape/ShapeOf_1.md
+++ b/docs/ops/shape/ShapeOf_1.md
@@ -10,7 +10,7 @@
**Inputs**:
-* **1**: Arbitrary input tensor. Required.
+* **1**: Arbitrary input tensor. **Required.**
**Outputs**:
@@ -34,4 +34,4 @@
-```
\ No newline at end of file
+```
diff --git a/docs/ops/shape/ShapeOf_3.md b/docs/ops/shape/ShapeOf_3.md
index a325b92cd63..8952753ef82 100644
--- a/docs/ops/shape/ShapeOf_3.md
+++ b/docs/ops/shape/ShapeOf_3.md
@@ -14,11 +14,11 @@
* **Range of values**: "i64" or "i32"
* **Type**: string
* **Default value**: "i64"
- * **Required**: *No*
+ * **Required**: *no*
**Inputs**:
-* **1**: Arbitrary input tensor of type *T*. Required.
+* **1**: Arbitrary input tensor of type *T*. **Required.**
**Outputs**:
@@ -49,4 +49,4 @@
-```
\ No newline at end of file
+```
diff --git a/docs/ops/shape/Squeeze_1.md b/docs/ops/shape/Squeeze_1.md
index 4510748ca17..7a8b9733be1 100644
--- a/docs/ops/shape/Squeeze_1.md
+++ b/docs/ops/shape/Squeeze_1.md
@@ -14,9 +14,9 @@
**Inputs**:
-* **1**: Multidimensional input tensor of type *T*. **Required**.
+* **1**: Multidimensional input tensor of type *T*. **Required.**
-* **2**: Scalar or 1D tensor of type *T_INT* with indices of dimensions to squeeze. Values could be negative (have to be from range `[-R, R-1]`, where `R` is the rank of the first input). **Optional**.
+* **2**: Scalar or 1D tensor of type *T_INT* with indices of dimensions to squeeze. Values could be negative (have to be from range `[-R, R-1]`, where `R` is the rank of the first input). **Optional.**
**Outputs**:
@@ -55,7 +55,7 @@
```
-*Example 2: squeeze 1D tensor with 1 element to a 0D tensor (constant)*
+*Example 2: squeeze 1D tensor with 1 element to a 0D tensor (constant)*
```xml
diff --git a/docs/ops/shape/Unsqueeze_1.md b/docs/ops/shape/Unsqueeze_1.md
index 8d42e9e7bd4..062a933403b 100644
--- a/docs/ops/shape/Unsqueeze_1.md
+++ b/docs/ops/shape/Unsqueeze_1.md
@@ -10,9 +10,9 @@
**Inputs**:
-* **1**: Tensor of type *T* and arbitrary shape. **Required**.
+* **1**: Tensor of type *T* and arbitrary shape. **Required.**
-* **2**: Scalar or 1D tensor of type *T_INT* with indices of dimensions to unsqueeze. Values could be negative (have to be from range `[-R, R-1]`, where `R` is the rank of the output). **Required**.
+* **2**: Scalar or 1D tensor of type *T_INT* with indices of dimensions to unsqueeze. Values could be negative (have to be from range `[-R, R-1]`, where `R` is the rank of the output). **Required.**
**Outputs**:
diff --git a/docs/ops/signals/DFT_7.md b/docs/ops/signals/DFT_7.md
index e984ea17a23..c9a841446a9 100644
--- a/docs/ops/signals/DFT_7.md
+++ b/docs/ops/signals/DFT_7.md
@@ -12,8 +12,8 @@
**Inputs**
-* **1**: `data` - Input tensor of type *T* with data for the DFT transformation. Type of elements is any supported floating-point type. The last dimension of the input tensor must be equal to 2, that is the input tensor shape must have the form `[D_0, D_1, ..., D_{N-1}, 2]`, representing the real and imaginary components of complex numbers in `[:, ..., :, 0]` and in `[:, ..., :, 1]` correspondingly. Required.
-* **2**: `axes` - 1D tensor of type *T_IND* specifying dimension indices where DFT is applied, and `axes` is any unordered list of indices of different dimensions of input tensor, for example, `[0, 4]`, `[4, 0]`, `[4, 2, 1]`, `[1, 2, 3]`, `[-3, 0, -2]`. These indices should be integers from `-(r - 1)` to `(r - 2)` inclusively, where `r = rank(data)`. A negative axis `a` is interpreted as an axis `r - 1 + a`. Other dimensions do not change. The order of elements in `axes` attribute matters, and is mapped directly to elements in the third input `signal_size`. Required.
+* **1**: `data` - Input tensor of type *T* with data for the DFT transformation. Type of elements is any supported floating-point type. The last dimension of the input tensor must be equal to 2, that is the input tensor shape must have the form `[D_0, D_1, ..., D_{N-1}, 2]`, representing the real and imaginary components of complex numbers in `[:, ..., :, 0]` and in `[:, ..., :, 1]` correspondingly. **Required.**
+* **2**: `axes` - 1D tensor of type *T_IND* specifying dimension indices where DFT is applied, and `axes` is any unordered list of indices of different dimensions of input tensor, for example, `[0, 4]`, `[4, 0]`, `[4, 2, 1]`, `[1, 2, 3]`, `[-3, 0, -2]`. These indices should be integers from `-(r - 1)` to `(r - 2)` inclusively, where `r = rank(data)`. A negative axis `a` is interpreted as an axis `r - 1 + a`. Other dimensions do not change. The order of elements in `axes` attribute matters, and is mapped directly to elements in the third input `signal_size`. **Required.**
* **NOTE**: The following constraint must be satisfied: `rank(data) >= len(axes) + 1 and input_shape[-1] == 2 and (rank(data) - 1) not in axes and (-1) not in axes`.
* **3**: `signal_size` - 1D tensor of type *T_SIZE* describing signal size with respect to axes from the input `axes`. If `signal_size[i] == -1`, then DFT is calculated for full size of the axis `axes[i]`. If `signal_size[i] > input_shape[: r - 1][axes[i]]`, then input data are zero-padded with respect to the axis `axes[i]` at the end. Finally, `signal_size[i] < input_shape[: r - 1][axes[i]]`, then input data are trimmed with respect to the axis `axes[i]`. More precisely, if `signal_size[i] < input_shape[: r - 1][axes[i]]`, the slice `0: signal_size[i]` of the axis `axes[i]` is considered. Optional, with default value `[input_shape[: r - 1][a] for a in axes]`.
* **NOTE**: If the input `signal_size` is specified, the size of `signal_size` must be the same as the size of `axes`.
diff --git a/docs/ops/signals/IDFT_7.md b/docs/ops/signals/IDFT_7.md
index dcebc84e59a..78f94466267 100644
--- a/docs/ops/signals/IDFT_7.md
+++ b/docs/ops/signals/IDFT_7.md
@@ -12,8 +12,8 @@
**Inputs**
-* **1**: `data` - Input tensor of type *T* with data for the IDFT transformation. Type of elements is any supported floating-point type. The last dimension of the input tensor must be equal to 2, that is the input tensor shape must have the form `[D_0, D_1, ..., D_{N-1}, 2]`, representing the real and imaginary components of complex numbers in `[:, ..., :, 0]` and in `[:, ..., :, 1]` correspondingly. Required.
-* **2**: **2**: `axes` - 1D tensor of type *T_IND* specifying dimension indices where IDFT is applied, and `axes` is any unordered list of indices of different dimensions of input tensor, for example, `[0, 4]`, `[4, 0]`, `[4, 2, 1]`, `[1, 2, 3]`, `[-3, 0, -2]`. These indices should be integers from `-(r - 1)` to `(r - 2)` inclusively, where `r = rank(data)`. A negative axis `a` is interpreted as an axis `r - 1 + a`. Other dimensions do not change. The order of elements in `axes` attribute matters, and is mapped directly to elements in the third input `signal_size`. Required.
+* **1**: `data` - Input tensor of type *T* with data for the IDFT transformation. Type of elements is any supported floating-point type. The last dimension of the input tensor must be equal to 2, that is the input tensor shape must have the form `[D_0, D_1, ..., D_{N-1}, 2]`, representing the real and imaginary components of complex numbers in `[:, ..., :, 0]` and in `[:, ..., :, 1]` correspondingly. **Required.**
+* **2**: **2**: `axes` - 1D tensor of type *T_IND* specifying dimension indices where IDFT is applied, and `axes` is any unordered list of indices of different dimensions of input tensor, for example, `[0, 4]`, `[4, 0]`, `[4, 2, 1]`, `[1, 2, 3]`, `[-3, 0, -2]`. These indices should be integers from `-(r - 1)` to `(r - 2)` inclusively, where `r = rank(data)`. A negative axis `a` is interpreted as an axis `r - 1 + a`. Other dimensions do not change. The order of elements in `axes` attribute matters, and is mapped directly to elements in the third input `signal_size`. **Required.**
* **NOTE**: The following constraint must be satisfied: `rank(data) >= len(axes) + 1 and input_shape[-1] == 2 and (rank(data) - 1) not in axes and (-1) not in axes`.
* **3**: `signal_size` - 1D tensor of type *T_SIZE* describing signal size with respect to axes from the input `axes`. If `signal_size[i] == -1`, then IDFT is calculated for full size of the axis `axes[i]`. If `signal_size[i] > input_shape[: r - 1][axes[i]]`, then input data are zero-padded with respect to the axis `axes[i]` at the end. Finally, if `signal_size[i] < input_shape[: r - 1][axes[i]]`, then input data are trimmed with respect to the axis `axes[i]`. More precisely, if `signal_size[i] < input_shape[: r - 1][axes[i]]`, the slice `0: signal_size[i]` of the axis `axes[i]` is considered. Optional, with default value `[input_shape[: r - 1][a] for a in axes]`.
* **NOTE**: If the input `signal_size` is specified, then the size of `signal_size` must be the same as the size of `axes`.
diff --git a/docs/ops/sort/ExperimentalDetectronTopKROIs_6.md b/docs/ops/sort/ExperimentalDetectronTopKROIs_6.md
index 6b496fbc93a..107f6311c53 100644
--- a/docs/ops/sort/ExperimentalDetectronTopKROIs_6.md
+++ b/docs/ops/sort/ExperimentalDetectronTopKROIs_6.md
@@ -4,12 +4,12 @@
**Category**: Sort
-**Short description**: The *ExperimentalDetectronTopKROIs* operation is TopK operation applied to probabilities of input
+**Short description**: The *ExperimentalDetectronTopKROIs* operation is TopK operation applied to probabilities of input
ROIs.
-**Detailed description**: The operation performs probabilities descending sorting for input ROIs and returns *max_rois*
-number of ROIs. Order of sorted ROIs with equal probabilities is undefined. If the number of ROIs is less than *max_rois*
-then operation returns all ROIs descended sorted and the output tensor is filled with undefined values for the rest of
+**Detailed description**: The operation performs probabilities descending sorting for input ROIs and returns *max_rois*
+number of ROIs. Order of sorted ROIs with equal probabilities is undefined. If the number of ROIs is less than *max_rois*
+then operation returns all ROIs descended sorted and the output tensor is filled with undefined values for the rest of
output tensor elements.
**Attributes**:
@@ -24,7 +24,7 @@ output tensor elements.
**Inputs**
-* **1**: A 2D tensor of type *T* with shape `[number_of_ROIs, 4]` describing the ROIs as 4-tuples:
+* **1**: A 2D tensor of type *T* with shape `[number_of_ROIs, 4]` describing the ROIs as 4-tuples:
[x1, y1, x2, y2]. **Required.**
* **2**: A 1D tensor of type *T* with shape `[number_of_input_ROIs]` contains probabilities for input ROIs. **Required.**
diff --git a/docs/ops/sort/MatrixNMS_8.md b/docs/ops/sort/MatrixNMS_8.md
index b578822d6eb..b479a795366 100644
--- a/docs/ops/sort/MatrixNMS_8.md
+++ b/docs/ops/sort/MatrixNMS_8.md
@@ -32,7 +32,7 @@ The Matrix NMS algorithm is described below:
* *none* - do not guarantee the order.
* **Type**: `string`
* **Default value**: `none`
- * **Required**: *No*
+ * **Required**: *no*
* *sort_result_across_batch*
@@ -42,7 +42,7 @@ The Matrix NMS algorithm is described below:
* *false* - do not sort selected boxes across batches (boxes are sorted per batch element).
* **Type**: boolean
* **Default value**: false
- * **Required**: *No*
+ * **Required**: *no*
* *output_type*
@@ -50,7 +50,7 @@ The Matrix NMS algorithm is described below:
* **Range of values**: `i64` or `i32`
* **Type**: `string`
* **Default value**: `i64`
- * **Required**: *No*
+ * **Required**: *no*
* *score_threshold*
@@ -58,7 +58,7 @@ The Matrix NMS algorithm is described below:
* **Range of values**: a floating-point number
* **Type**: `float`
* **Default value**: `0`
- * **Required**: *No*
+ * **Required**: *no*
* *nms_top_k*
@@ -66,7 +66,7 @@ The Matrix NMS algorithm is described below:
* **Range of values**: an integer
* **Type**: `int`
* **Default value**: `-1` meaning to keep all boxes
- * **Required**: *No*
+ * **Required**: *no*
* *keep_top_k*
@@ -74,7 +74,7 @@ The Matrix NMS algorithm is described below:
* **Range of values**: an integer
* **Type**: `int`
* **Default value**: `-1` meaning to keep all boxes
- * **Required**: *No*
+ * **Required**: *no*
* *background_class*
@@ -82,7 +82,7 @@ The Matrix NMS algorithm is described below:
* **Range of values**: an integer
* **Type**: `int`
* **Default value**: `-1` meaning to keep all classes
- * **Required**: *No*
+ * **Required**: *no*
* *normalized*
@@ -92,7 +92,7 @@ The Matrix NMS algorithm is described below:
* *false* - the box coordinates are not normalized.
* **Type**: boolean
* **Default value**: True
- * **Required**: *No*
+ * **Required**: *no*
* *decay_function*
@@ -100,7 +100,7 @@ The Matrix NMS algorithm is described below:
* **Range of values**: `gaussian`, `linear`
* **Type**: `string`
* **Default value**: `linear`
- * **Required**: *No*
+ * **Required**: *no*
* *gaussian_sigma*
@@ -108,7 +108,7 @@ The Matrix NMS algorithm is described below:
* **Range of values**: a floating-point number
* **Type**: `float`
* **Default value**: `2.0`
- * **Required**: *No*
+ * **Required**: *no*
* *post_threshold*
@@ -116,7 +116,7 @@ The Matrix NMS algorithm is described below:
* **Range of values**: a floating-point number
* **Type**: `float`
* **Default value**: `0`
- * **Required**: *No*
+ * **Required**: *no*
**Inputs**:
@@ -168,7 +168,7 @@ When there is no box selected, `selected_num` is filled with `0`. `selected_outp
-1
- 1
+ 13
diff --git a/docs/ops/sort/MulticlassNMS_8.md b/docs/ops/sort/MulticlassNMS_8.md
index 866254963fd..067b9f5a8b9 100644
--- a/docs/ops/sort/MulticlassNMS_8.md
+++ b/docs/ops/sort/MulticlassNMS_8.md
@@ -33,7 +33,7 @@ Boxes of `background_class` are skipped and thus eliminated.
* *none* - do not guarantee the order.
* **Type**: `string`
* **Default value**: `none`
- * **Required**: *No*
+ * **Required**: *no*
* *sort_result_across_batch*
@@ -43,7 +43,7 @@ Boxes of `background_class` are skipped and thus eliminated.
* *false* - do not sort selected boxes across batches (boxes are sorted per batch element).
* **Type**: boolean
* **Default value**: false
- * **Required**: *No*
+ * **Required**: *no*
* *output_type*
@@ -51,7 +51,7 @@ Boxes of `background_class` are skipped and thus eliminated.
* **Range of values**: `i64` or `i32`
* **Type**: `string`
* **Default value**: `i64`
- * **Required**: *No*
+ * **Required**: *no*
* *iou_threshold*
@@ -59,7 +59,7 @@ Boxes of `background_class` are skipped and thus eliminated.
* **Range of values**: a floating-point number
* **Type**: `float`
* **Default value**: `0`
- * **Required**: *No*
+ * **Required**: *no*
* *score_threshold*
@@ -67,7 +67,7 @@ Boxes of `background_class` are skipped and thus eliminated.
* **Range of values**: a floating-point number
* **Type**: `float`
* **Default value**: `0`
- * **Required**: *No*
+ * **Required**: *no*
* *nms_top_k*
@@ -75,7 +75,7 @@ Boxes of `background_class` are skipped and thus eliminated.
* **Range of values**: an integer
* **Type**: `int`
* **Default value**: `-1` meaning to keep all boxes
- * **Required**: *No*
+ * **Required**: *no*
* *keep_top_k*
@@ -83,7 +83,7 @@ Boxes of `background_class` are skipped and thus eliminated.
* **Range of values**: an integer
* **Type**: `int`
* **Default value**: `-1` meaning to keep all boxes
- * **Required**: *No*
+ * **Required**: *no*
* *background_class*
@@ -91,7 +91,7 @@ Boxes of `background_class` are skipped and thus eliminated.
* **Range of values**: an integer
* **Type**: `int`
* **Default value**: `-1` meaning to keep all classes.
- * **Required**: *No*
+ * **Required**: *no*
* *normalized*
@@ -101,7 +101,7 @@ Boxes of `background_class` are skipped and thus eliminated.
* *false* - the box coordinates are not normalized.
* **Type**: boolean
* **Default value**: True
- * **Required**: *No*
+ * **Required**: *no*
* *nms_eta*
@@ -109,7 +109,7 @@ Boxes of `background_class` are skipped and thus eliminated.
* **Range of values**: a floating-point number in close range `[0, 1.0]`.
* **Type**: `float`
* **Default value**: `1.0`
- * **Required**: *No*
+ * **Required**: *no*
**Inputs**:
@@ -161,7 +161,7 @@ When there is no box selected, `selected_num` is filled with `0`. `selected_outp
-1
- 1
+ 13
diff --git a/docs/ops/sort/NonMaxSuppression_1.md b/docs/ops/sort/NonMaxSuppression_1.md
index eb9aae89aeb..cbcf3d398a9 100644
--- a/docs/ops/sort/NonMaxSuppression_1.md
+++ b/docs/ops/sort/NonMaxSuppression_1.md
@@ -41,9 +41,9 @@ class must not exceed `max_output_boxes_per_class`.
**Inputs**:
-* **1**: `boxes` - floating point tensor of shape `[num_batches, num_boxes, 4]` with box coordinates. Required.
+* **1**: `boxes` - floating point tensor of shape `[num_batches, num_boxes, 4]` with box coordinates. **Required.**
-* **2**: `scores` - floating point tensor of shape `[num_batches, num_classes, num_boxes]` with box scores. Required.
+* **2**: `scores` - floating point tensor of shape `[num_batches, num_classes, num_boxes]` with box scores. **Required.**
* **3**: `max_output_boxes_per_class` - integer scalar tensor specifying maximum number of boxes to be selected per class. Optional with default value 0 meaning select no boxes.
@@ -83,4 +83,4 @@ The output tensor is filled with -1s for output tensor elements if the total num
-```
\ No newline at end of file
+```
diff --git a/docs/ops/sort/NonMaxSuppression_3.md b/docs/ops/sort/NonMaxSuppression_3.md
index a92e30ac686..77089c6b4b7 100644
--- a/docs/ops/sort/NonMaxSuppression_3.md
+++ b/docs/ops/sort/NonMaxSuppression_3.md
@@ -45,13 +45,13 @@ class must not exceed `max_output_boxes_per_class`.
* **Range of values**: "i64" or "i32"
* **Type**: string
* **Default value**: "i64"
- * **Required**: *No*
+ * **Required**: *no*
**Inputs**:
-* **1**: `boxes` - tensor of type *T* and shape `[num_batches, num_boxes, 4]` with box coordinates. Required.
+* **1**: `boxes` - tensor of type *T* and shape `[num_batches, num_boxes, 4]` with box coordinates. **Required.**
-* **2**: `scores` - tensor of type *T* and shape `[num_batches, num_classes, num_boxes]` with box scores. Required.
+* **2**: `scores` - tensor of type *T* and shape `[num_batches, num_classes, num_boxes]` with box scores. **Required.**
* **3**: `max_output_boxes_per_class` - scalar tensor of type *T_MAX_BOXES* specifying maximum number of boxes to be selected per class. Optional with default value 0 meaning select no boxes.
diff --git a/docs/ops/sort/NonMaxSuppression_4.md b/docs/ops/sort/NonMaxSuppression_4.md
index e8fb7f842f0..3e54b96b67c 100644
--- a/docs/ops/sort/NonMaxSuppression_4.md
+++ b/docs/ops/sort/NonMaxSuppression_4.md
@@ -45,13 +45,13 @@ class must not exceed `max_output_boxes_per_class`.
* **Range of values**: "i64" or "i32"
* **Type**: string
* **Default value**: "i64"
- * **Required**: *No*
+ * **Required**: *no*
**Inputs**:
-* **1**: `boxes` - tensor of type *T* and shape `[num_batches, num_boxes, 4]` with box coordinates. Required.
+* **1**: `boxes` - tensor of type *T* and shape `[num_batches, num_boxes, 4]` with box coordinates. **Required.**
-* **2**: `scores` - tensor of type *T* and shape `[num_batches, num_classes, num_boxes]` with box scores. Required.
+* **2**: `scores` - tensor of type *T* and shape `[num_batches, num_classes, num_boxes]` with box scores. **Required.**
* **3**: `max_output_boxes_per_class` - scalar tensor of type *T_MAX_BOXES* specifying maximum number of boxes to be selected per class. Optional with default value 0 meaning select no boxes.
diff --git a/docs/ops/sort/NonMaxSuppression_5.md b/docs/ops/sort/NonMaxSuppression_5.md
index 75d6881f216..f6624d13b56 100644
--- a/docs/ops/sort/NonMaxSuppression_5.md
+++ b/docs/ops/sort/NonMaxSuppression_5.md
@@ -50,13 +50,13 @@ class must not exceed `max_output_boxes_per_class`.
* **Range of values**: "i64" or "i32"
* **Type**: string
* **Default value**: "i64"
- * **Required**: *No*
+ * **Required**: *no*
**Inputs**:
-* **1**: `boxes` - tensor of type *T* and shape `[num_batches, num_boxes, 4]` with box coordinates. Required.
+* **1**: `boxes` - tensor of type *T* and shape `[num_batches, num_boxes, 4]` with box coordinates. **Required.**
-* **2**: `scores` - tensor of type *T* and shape `[num_batches, num_classes, num_boxes]` with box scores. Required.
+* **2**: `scores` - tensor of type *T* and shape `[num_batches, num_classes, num_boxes]` with box scores. **Required.**
* **3**: `max_output_boxes_per_class` - scalar or 1D tensor with 1 element of type *T_MAX_BOXES* specifying maximum number of boxes to be selected per class. Optional with default value 0 meaning select no boxes.
diff --git a/docs/ops/sort/TopK_1.md b/docs/ops/sort/TopK_1.md
index 1c5f749bd4b..1b2da3f69e5 100644
--- a/docs/ops/sort/TopK_1.md
+++ b/docs/ops/sort/TopK_1.md
@@ -35,11 +35,11 @@
* **Range of values**: "i64" or "i32"
* **Type**: string
* **Default value**: "i32"
- * **Required**: *No*
+ * **Required**: *no*
**Inputs**:
-* **1**: Arbitrary tensor. Required.
+* **1**: Arbitrary tensor. **Required.**
* **2**: *k* -- scalar specifies how many maximum/minimum elements should be computed
diff --git a/docs/ops/sort/TopK_3.md b/docs/ops/sort/TopK_3.md
index da1738f1864..5986b9996be 100644
--- a/docs/ops/sort/TopK_3.md
+++ b/docs/ops/sort/TopK_3.md
@@ -35,14 +35,14 @@
* **Range of values**: "i64" or "i32"
* **Type**: string
* **Default value**: "i32"
- * **Required**: *No*
+ * **Required**: *no*
**Inputs**:
-* **1**: tensor of arbitrary rank of type *T*. Required.
+* **1**: tensor of arbitrary rank of type *T*. **Required.**
-* **2**: *k* -- scalar of any integer type specifies how many maximum/minimum elements should be computed. Required
+* **2**: *k* -- scalar of any integer type specifies how many maximum/minimum elements should be computed. **Required.**
**Outputs**:
diff --git a/docs/ops/sparse/EmbeddingBagOffsetsSum_3.md b/docs/ops/sparse/EmbeddingBagOffsetsSum_3.md
index e702198988e..7bd1540e91d 100644
--- a/docs/ops/sparse/EmbeddingBagOffsetsSum_3.md
+++ b/docs/ops/sparse/EmbeddingBagOffsetsSum_3.md
@@ -10,13 +10,13 @@
**Inputs**:
-* **1**: `emb_table` tensor containing the embedding lookup table of the module of shape `[num_emb, emb_dim1, emb_dim2, ...]` and of type *T*. Required.
+* **1**: `emb_table` tensor containing the embedding lookup table of the module of shape `[num_emb, emb_dim1, emb_dim2, ...]` and of type *T*. **Required.**
-* **2**: `indices` tensor of shape `[num_indices]` and of type *T_IND*. Required.
+* **2**: `indices` tensor of shape `[num_indices]` and of type *T_IND*. **Required.**
-* **3**: `offsets` tensor of shape `[batch]` and of type *T_IND* containing the starting index positions of each "bag" in `indices`. Required.
+* **3**: `offsets` tensor of shape `[batch]` and of type *T_IND* containing the starting index positions of each "bag" in `indices`. **Required.**
-* **4**: `default_index` scalar of type *T_IND* containing default index in embedding table to fill empty "bags". If not provided empty "bags" are filled with zeros. Optional.
+* **4**: `default_index` scalar of type *T_IND* containing default index in embedding table to fill empty "bags". If not provided empty "bags" are filled with zeros. **Optional.**
* **5**: `per_sample_weights` tensor of the same shape as `indices` and of type *T*. Each value in this tensor are multiplied with each value pooled from embedding table for each index. Optional, default is tensor of ones.
@@ -57,4 +57,4 @@
-```
\ No newline at end of file
+```
diff --git a/docs/ops/sparse/EmbeddingBagPackedSum_3.md b/docs/ops/sparse/EmbeddingBagPackedSum_3.md
index c288ef01d8c..ceaebe38623 100644
--- a/docs/ops/sparse/EmbeddingBagPackedSum_3.md
+++ b/docs/ops/sparse/EmbeddingBagPackedSum_3.md
@@ -10,9 +10,9 @@
**Inputs**:
-* **1**: `emb_table` tensor containing the embedding lookup table of the module of shape `[num_emb, emb_dim1, emb_dim2, ...]` and of type *T*. Required.
+* **1**: `emb_table` tensor containing the embedding lookup table of the module of shape `[num_emb, emb_dim1, emb_dim2, ...]` and of type *T*. **Required.**
-* **2**: `indices` tensor of shape `[batch, indices_per_bag]` and of type *T_IND*. Required.
+* **2**: `indices` tensor of shape `[batch, indices_per_bag]` and of type *T_IND*. **Required.**
* **3**: `per_sample_weights` tensor of the same shape as `indices` and of type *T*. Each value in this tensor are multiplied with each value pooled from embedding table for each index. Optional, default is tensor of ones.
@@ -51,4 +51,4 @@
-```
\ No newline at end of file
+```
diff --git a/docs/ops/sparse/EmbeddingSegmentsSum_3.md b/docs/ops/sparse/EmbeddingSegmentsSum_3.md
index 80e45bdd1fe..71dc4897251 100644
--- a/docs/ops/sparse/EmbeddingSegmentsSum_3.md
+++ b/docs/ops/sparse/EmbeddingSegmentsSum_3.md
@@ -10,15 +10,15 @@
**Inputs**:
-* **1**: `emb_table` tensor containing the embedding lookup table of the module of shape `[num_emb, emb_dim1, emb_dim2, ...]` and of type *T*. Required.
+* **1**: `emb_table` tensor containing the embedding lookup table of the module of shape `[num_emb, emb_dim1, emb_dim2, ...]` and of type *T*. **Required.**
-* **2**: `indices` tensor of shape `[num_indices]` and of type *T_IND*. Required.
+* **2**: `indices` tensor of shape `[num_indices]` and of type *T_IND*. **Required.**
-* **3**: `segment_ids` tensor of shape `[num_indices]` and of type *T_IND* with indices into the output Tensor. Values should be sorted and can be repeated. Required.
+* **3**: `segment_ids` tensor of shape `[num_indices]` and of type *T_IND* with indices into the output Tensor. Values should be sorted and can be repeated. **Required.**
-* **4**: `num_segments` scalar of type *T_IND* indicating the number of segments. Required.
+* **4**: `num_segments` scalar of type *T_IND* indicating the number of segments. **Required.**
-* **5**: `default_index` scalar of type *T_IND* containing default index in embedding table to fill empty segments. If not provided empty segments are filled with zeros. Optional.
+* **5**: `default_index` scalar of type *T_IND* containing default index in embedding table to fill empty segments. If not provided empty segments are filled with zeros. **Optional.**
* **6**: `per_sample_weights` tensor of the same shape as `indices` and of type *T*. Each value in this tensor are multiplied with each value pooled from embedding table for each index. Optional, default is tensor of ones.
@@ -60,4 +60,4 @@
-```
\ No newline at end of file
+```
diff --git a/docs/ops/type/ConvertLike_1.md b/docs/ops/type/ConvertLike_1.md
index 1029206e983..a70e3dd5bff 100644
--- a/docs/ops/type/ConvertLike_1.md
+++ b/docs/ops/type/ConvertLike_1.md
@@ -52,4 +52,4 @@ where `a` and `b` correspond to `data` and `like` input tensors, respectively.
-```
\ No newline at end of file
+```
diff --git a/inference-engine/src/gna_plugin/transformations/split_convolution_with_large_buffer_size.cpp b/inference-engine/src/gna_plugin/transformations/split_convolution_with_large_buffer_size.cpp
index 2e750308e5f..4043c4aa5f0 100644
--- a/inference-engine/src/gna_plugin/transformations/split_convolution_with_large_buffer_size.cpp
+++ b/inference-engine/src/gna_plugin/transformations/split_convolution_with_large_buffer_size.cpp
@@ -10,7 +10,7 @@
#include
#include
#include
-
+#include
#include "backend/gna_limitations.hpp"
using namespace GNAPluginNS;
@@ -54,24 +54,29 @@ static bool Convert(std::shared_ptr conv,
auto split_node = std::make_shared(conv->input_value(0),
ngraph::opset7::Constant::create(ngraph::element::i64, ngraph::Shape({1}), std::vector{width_axis}),
ngraph::opset7::Constant::create(ngraph::element::i64, ngraph::Shape({split_sizes.size()}), split_sizes));
+ ngraph::copy_runtime_info(conv, split_node);
split_node->set_friendly_name(conv->get_friendly_name() + "/split");
ngraph::OutputVector convOutputs;
std::shared_ptr root_node = fq ? fq : (add ? add : conv);
for (int i = 0; i < split_sizes.size(); ++i) {
std::shared_ptr output = conv->clone_with_new_inputs({split_node->output(i), conv->input_value(1)});
+ ngraph::copy_runtime_info(split_node, output);
output->set_friendly_name(conv->get_friendly_name() + "_" + std::to_string(i));
if (bias) {
output = std::make_shared(output, bias);
+ ngraph::copy_runtime_info(conv, output);
}
if (fq) {
output = fq->clone_with_new_inputs({output, fq->input_value(1), fq->input_value(2),
fq->input_value(3), fq->input_value(4)});
+ ngraph::copy_runtime_info(fq, output);
}
convOutputs.push_back(output);
}
auto concat = std::make_shared(convOutputs, width_axis);
+ ngraph::copy_runtime_info(conv, concat);
concat->set_friendly_name(conv->get_friendly_name());
ngraph::replace_node(root_node, concat);
return true;
diff --git a/inference-engine/src/vpu/common/CMakeLists.txt b/inference-engine/src/vpu/common/CMakeLists.txt
index 26d31047c24..71c727b631a 100644
--- a/inference-engine/src/vpu/common/CMakeLists.txt
+++ b/inference-engine/src/vpu/common/CMakeLists.txt
@@ -53,7 +53,7 @@ function(add_common_target TARGET_NAME STATIC_IE)
openvino_developer_export_targets(COMPONENT inference_engine_vpu TARGETS ${TARGET_NAME})
target_link_libraries(${TARGET_NAME} PUBLIC ngraph inference_engine_transformations
- PRIVATE mvnc openvino::itt)
+ PRIVATE openvino::itt)
if(NOT STATIC_IE)
target_link_libraries(${TARGET_NAME} PUBLIC inference_engine_legacy)
diff --git a/inference-engine/src/vpu/common/include/vpu/configuration/options/platform.hpp b/inference-engine/src/vpu/graph_transformer/include/vpu/configuration/options/platform.hpp
similarity index 100%
rename from inference-engine/src/vpu/common/include/vpu/configuration/options/platform.hpp
rename to inference-engine/src/vpu/graph_transformer/include/vpu/configuration/options/platform.hpp
diff --git a/inference-engine/src/vpu/common/include/vpu/configuration/options/protocol.hpp b/inference-engine/src/vpu/graph_transformer/include/vpu/configuration/options/protocol.hpp
similarity index 100%
rename from inference-engine/src/vpu/common/include/vpu/configuration/options/protocol.hpp
rename to inference-engine/src/vpu/graph_transformer/include/vpu/configuration/options/protocol.hpp
diff --git a/inference-engine/src/vpu/common/src/configuration/options/platform.cpp b/inference-engine/src/vpu/graph_transformer/src/configuration/options/platform.cpp
similarity index 100%
rename from inference-engine/src/vpu/common/src/configuration/options/platform.cpp
rename to inference-engine/src/vpu/graph_transformer/src/configuration/options/platform.cpp
diff --git a/inference-engine/src/vpu/common/src/configuration/options/protocol.cpp b/inference-engine/src/vpu/graph_transformer/src/configuration/options/protocol.cpp
similarity index 100%
rename from inference-engine/src/vpu/common/src/configuration/options/protocol.cpp
rename to inference-engine/src/vpu/graph_transformer/src/configuration/options/protocol.cpp
diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/utils/constants.py b/inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/utils/constants.py
index 469a3aa9e8e..a90c904a83c 100644
--- a/inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/utils/constants.py
+++ b/inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/utils/constants.py
@@ -27,6 +27,7 @@ VERIFIED_OP_REFERENCES = [
'Cosh-1',
'DeformableConvolution-1',
'DeformablePSROIPooling-1',
+ 'DepthToSpace-1',
'DetectionOutput-1',
'Divide-1',
'ExperimentalDetectronDetectionOutput-6',
@@ -92,6 +93,7 @@ VERIFIED_OP_REFERENCES = [
'ScatterNDUpdate-4',
'ShapeOf-1',
'ShapeOf-3',
+ 'ShuffleChannels-1',
'Sigmoid-1',
'Sin-1',
'Sinh-1'
diff --git a/inference-engine/tests/unit/gna/ngraph/transformations/gna_split_convolution_with_large_buffer_size.cpp b/inference-engine/tests/unit/gna/ngraph/transformations/gna_split_convolution_with_large_buffer_size.cpp
new file mode 100644
index 00000000000..29dbf117cb4
--- /dev/null
+++ b/inference-engine/tests/unit/gna/ngraph/transformations/gna_split_convolution_with_large_buffer_size.cpp
@@ -0,0 +1,328 @@
+// Copyright (C) 2021 Intel Corporation
+// SPDX-License-Identifier: Apache-2.0
+//
+
+#include
+
+#include "transformations/split_convolution_with_large_buffer_size.hpp"
+
+#include "common_test_utils/ngraph_test_utils.hpp"
+#include
+#include
+#include
+#include
+
+namespace testing {
+namespace {
+
+struct Graph {
+ std::shared_ptr createFunction();
+
+ std::shared_ptr input_params;
+ ngraph::OutputVector output_nodes;
+};
+
+std::shared_ptr Graph::createFunction() {
+ auto result = std::make_shared(output_nodes.front());
+ return std::make_shared(ngraph::ResultVector{result},
+ ngraph::ParameterVector{input_params});
+}
+
+// TODO: use std::make_unique when C++14 will be available
+template
+std::unique_ptr createUnique(Args&&... args) {
+ return std::unique_ptr(new T(std::forward(args)...));
+}
+
+class CreateGraphDecorator {
+public:
+ CreateGraphDecorator(std::unique_ptr prev = nullptr) : prev_(std::move(prev)) {}
+ virtual ~CreateGraphDecorator() = default;
+ virtual Graph build() {
+ Graph graph;
+ if (prev_)
+ graph = prev_->build();
+ updateGraph(graph);
+ return graph;
+ }
+protected:
+ virtual void updateGraph(Graph& graph) = 0;
+private:
+ CreateGraphDecorator(const CreateGraphDecorator&) = delete;
+ CreateGraphDecorator& operator=(const CreateGraphDecorator&) = delete;
+private:
+ std::unique_ptr prev_;
+};
+
+using CreateGraphDecoratorPtr = std::unique_ptr;
+
+class CreateAppendableGraphDecorator : public CreateGraphDecorator {
+public:
+ CreateAppendableGraphDecorator(std::unique_ptr prev = nullptr) :
+ CreateGraphDecorator(std::move(prev)) {}
+protected:
+ void updateGraph(Graph& graph) override {
+ ngraph::OutputVector new_graph_output;
+ for (auto&& node : graph.output_nodes) {
+ new_graph_output.emplace_back(createOutputNode(node));
+ }
+
+ if (graph.output_nodes.empty())
+ new_graph_output.emplace_back(createOutputNode(graph.input_params));
+
+ graph.output_nodes.swap(new_graph_output);
+ }
+ virtual ngraph::Output createOutputNode(const ngraph::Output& parent_node) = 0;
+};
+
+class CreateBaseDecorator : public CreateGraphDecorator {
+public:
+ // always the first decorator => no prev_builder
+ CreateBaseDecorator(const ngraph::Shape& input_data_shape = ngraph::Shape{1, 64, 4096, 4096}) :
+ CreateGraphDecorator(nullptr),
+ input_data_shape_(input_data_shape) {}
+protected:
+ Graph build() override;
+ void updateGraph(Graph& graph) override {}
+private:
+ const ngraph::Shape input_data_shape_;
+};
+
+using CreateBaseDecoratorPtr = std::unique_ptr;
+
+Graph CreateBaseDecorator::build() {
+ Graph graph;
+ graph.input_params = std::make_shared(ngraph::element::f32,
+ input_data_shape_);
+ return graph;
+}
+
+class CreateConvolution : public CreateAppendableGraphDecorator {
+public:
+ CreateConvolution(CreateGraphDecoratorPtr prev, const ngraph::Shape& kernel_shape = ngraph::Shape{1, 64, 1, 1}) :
+ CreateAppendableGraphDecorator(std::move(prev)),
+ kernel_shape_(kernel_shape) {}
+protected:
+ ngraph::Output createOutputNode(const ngraph::Output& parent_node) override;
+private:
+ const ngraph::Shape kernel_shape_;
+};
+
+ngraph::Output CreateConvolution::createOutputNode(const ngraph::Output& parent_node) {
+ auto kernel = ngraph::opset7::Constant::create(ngraph::element::f32,
+ kernel_shape_, {1});
+
+ return std::make_shared(parent_node,
+ kernel,
+ ngraph::Strides{1, 1},
+ ngraph::CoordinateDiff{0, 0},
+ ngraph::CoordinateDiff{0, 0},
+ ngraph::Strides{1, 1});
+}
+
+// should be used only after CreateBaseDecorator
+class CreateSplittedConvolution : public CreateGraphDecorator {
+public:
+ CreateSplittedConvolution(CreateGraphDecoratorPtr prev,
+ const ngraph::Shape& kernel_shape = ngraph::Shape{1, 64, 1, 1},
+ const ngraph::Shape& split_shape = ngraph::Shape{960, 960, 960, 960, 256}) :
+ CreateGraphDecorator(std::move(prev)),
+ kernel_shape_(kernel_shape),
+ split_shape_(split_shape) {}
+protected:
+ void updateGraph(Graph& graph) override;
+private:
+ const ngraph::Shape kernel_shape_;
+ const ngraph::Shape split_shape_;
+};
+
+void CreateSplittedConvolution::updateGraph(Graph& graph) {
+ auto split_node_c1 = ngraph::opset7::Constant::create(ngraph::element::i64, ngraph::Shape({1}), std::vector{3});
+ auto split_node_c2 = ngraph::opset7::Constant::create(ngraph::element::i64, ngraph::Shape({split_shape_.size()}), split_shape_);
+ auto split_node = std::make_shared(graph.input_params,
+ split_node_c1,
+ split_node_c2);
+
+ auto kernel = ngraph::opset7::Constant::create(ngraph::element::f32,
+ kernel_shape_, {1});
+
+ for (int i = 0; i < split_shape_.size(); ++i) {
+ auto convolution_operation = std::make_shared(split_node->output(i),
+ kernel,
+ ngraph::Strides{1, 1},
+ ngraph::CoordinateDiff{0, 0},
+ ngraph::CoordinateDiff{0, 0},
+ ngraph::Strides{1, 1});
+ graph.output_nodes.push_back(convolution_operation);
+ }
+}
+
+class CreateAdd : public CreateAppendableGraphDecorator {
+public:
+ CreateAdd(CreateGraphDecoratorPtr prev) :
+ CreateAppendableGraphDecorator(std::move(prev)) {}
+protected:
+ ngraph::Output createOutputNode(const ngraph::Output& parent_node) override;
+};
+
+ngraph::Output CreateAdd::createOutputNode(const ngraph::Output& parent_node) {
+ auto bias = ngraph::opset7::Constant::create(ngraph::element::f32, ngraph::Shape{1}, {1});
+ return std::make_shared(parent_node, bias);
+}
+
+class CreateFakeQuantize : public CreateAppendableGraphDecorator {
+public:
+ CreateFakeQuantize(CreateGraphDecoratorPtr prev) :
+ CreateAppendableGraphDecorator(std::move(prev)) {}
+protected:
+ ngraph::Output createOutputNode(const ngraph::Output& parent_node) override;
+};
+
+ngraph::Output CreateFakeQuantize::createOutputNode(const ngraph::Output& parent_node) {
+ auto input_low = ngraph::opset7::Constant::create(ngraph::element::f32, ngraph::Shape{1}, {1});
+ auto input_high = ngraph::opset7::Constant::create(ngraph::element::f32, ngraph::Shape{1}, {20});
+ auto output_low = ngraph::opset7::Constant::create(ngraph::element::f32, ngraph::Shape{1}, {0});
+ auto output_high = ngraph::opset7::Constant::create(ngraph::element::f32, ngraph::Shape{1}, {10});
+ return std::make_shared(parent_node, input_low,
+ input_high, output_low,
+ output_high, 11);
+}
+
+class CreateConcat : public CreateGraphDecorator {
+public:
+ CreateConcat(CreateGraphDecoratorPtr prev) :
+ CreateGraphDecorator(std::move(prev)) {}
+protected:
+ void updateGraph(Graph& graph) override;
+};
+
+void CreateConcat::updateGraph(Graph& graph) {
+ ngraph::OutputVector new_graph_output;
+ new_graph_output.emplace_back(std::make_shared(graph.output_nodes, 3));
+ graph.output_nodes.swap(new_graph_output);
+}
+
+// -------------------------------------------------------------------------------------------------------
+
+template::type = true>
+CreateGraphDecoratorPtr createBuildDecorator() {
+ CreateGraphDecoratorPtr build_decorator = createUnique();
+ return createUnique(std::move(build_decorator));
+}
+
+template 0), bool>::type = true>
+CreateGraphDecoratorPtr createBuildDecorator() {
+ CreateGraphDecoratorPtr build_decorator = createBuildDecorator();
+ return createUnique(std::move(build_decorator));
+}
+
+template
+Graph createGraph() {
+ CreateGraphDecoratorPtr build_decorator = createBuildDecorator();
+ return build_decorator->build();
+}
+
+CreateGraphDecoratorPtr createBuildDecorator(const ngraph::Shape& input_shape, const ngraph::Shape& kernel_shape) {
+ CreateGraphDecoratorPtr base_decorator = createUnique(input_shape);
+ return createUnique(std::move(base_decorator), kernel_shape);
+}
+
+template::type = true>
+CreateGraphDecoratorPtr createBuildDecorator(const ngraph::Shape& input_shape,
+ const ngraph::Shape& kernel_shape) {
+ CreateGraphDecoratorPtr build_decorator = createBuildDecorator(input_shape, kernel_shape);
+ return createUnique(std::move(build_decorator));
+}
+
+template 0), bool>::type = true>
+CreateGraphDecoratorPtr createBuildDecorator(const ngraph::Shape& input_shape,
+ const ngraph::Shape& kernel_shape) {
+ CreateGraphDecoratorPtr build_decorator = createBuildDecorator(input_shape, kernel_shape);
+ return createUnique(std::move(build_decorator));
+}
+
+Graph createSolidGraph(const ngraph::Shape& input_shape, const ngraph::Shape& kernel_shape) {
+ CreateGraphDecoratorPtr build_decorator = createBuildDecorator(input_shape, kernel_shape);
+ return build_decorator->build();
+}
+
+template
+Graph createSolidGraph(const ngraph::Shape& input_shape, const ngraph::Shape& kernel_shape) {
+ CreateGraphDecoratorPtr build_decorator = createBuildDecorator(input_shape, kernel_shape);
+ return build_decorator->build();
+}
+
+// -------------------------------------------------------------------------------------------------------
+
+class SplitConvolutionFixture: public CommonTestUtils::TestsCommon,
+ public ::testing::WithParamInterface> {
+public:
+ void SetUp() override;
+public:
+ std::shared_ptr function, reference_function;
+ ngraph::pass::Manager pass_manager;
+};
+
+void SplitConvolutionFixture::SetUp() {
+ // TODO: use auto & [transformed_graph, reference_graph] = this->GetParam() when C++17
+ Graph transformed_graph;
+ Graph reference_graph;
+ std::tie(transformed_graph, reference_graph, pass_manager) = this->GetParam();
+
+ function = transformed_graph.createFunction();
+ reference_function = reference_graph.createFunction();
+}
+
+void execute_test(std::shared_ptr function,
+ std::shared_ptr reference_function,
+ ngraph::pass::Manager& pass_manager) {
+ pass_manager.run_passes(function);
+ const FunctionsComparator func_comparator = FunctionsComparator::with_default().enable(FunctionsComparator::ATTRIBUTES);
+ const FunctionsComparator::Result result = func_comparator(function, reference_function);
+ ASSERT_TRUE(result.valid);
+}
+
+template
+ngraph::pass::Manager createPassManager() {
+ ngraph::pass::Manager manager;
+ manager.register_pass();
+ manager.register_pass();
+ return manager;
+}
+
+TEST_P(SplitConvolutionFixture, CompareFunctions) {
+ execute_test(function, reference_function, pass_manager);
+}
+
+INSTANTIATE_TEST_SUITE_P(SplitConvolutionTestSuite, SplitConvolutionFixture,
+ ::testing::Values(std::make_tuple(createGraph(),
+ createGraph(),
+ createPassManager()),
+ std::make_tuple(createGraph(),
+ createGraph(),
+ createPassManager()),
+ std::make_tuple(createGraph(),
+ createGraph(),
+ createPassManager()),
+ std::make_tuple(createGraph(),
+ createGraph(),
+ createPassManager()),
+ std::make_tuple(createSolidGraph(ngraph::Shape{1, 1, 1, 1}, ngraph::Shape{1, 1, 1, 1}),
+ createSolidGraph(ngraph::Shape{1, 1, 1, 1}, ngraph::Shape{1, 1, 1, 1}),
+ createPassManager()),
+ std::make_tuple(createSolidGraph(ngraph::Shape{1, 1, 1, 1}, ngraph::Shape{1, 1, 1, 1}),
+ createSolidGraph(ngraph::Shape{1, 1, 1, 1}, ngraph::Shape{1, 1, 1, 1}),
+ createPassManager()),
+ std::make_tuple(createSolidGraph(ngraph::Shape{1, 1, 1, 1}, ngraph::Shape{1, 1, 1, 1}),
+ createSolidGraph(ngraph::Shape{1, 1, 1, 1}, ngraph::Shape{1, 1, 1, 1}),
+ createPassManager()),
+ std::make_tuple(createSolidGraph(ngraph::Shape{1, 1, 1, 1},
+ ngraph::Shape{1, 1, 1, 1}),
+ createSolidGraph(ngraph::Shape{1, 1, 1, 1},
+ ngraph::Shape{1, 1, 1, 1}),
+ createPassManager())));
+
+} // namespace
+} // namespace testing
diff --git a/inference-engine/thirdparty/clDNN/api/cldnn/graph/program.hpp b/inference-engine/thirdparty/clDNN/api/cldnn/graph/program.hpp
index 95dfca9fc14..5f1a7cc4925 100644
--- a/inference-engine/thirdparty/clDNN/api/cldnn/graph/program.hpp
+++ b/inference-engine/thirdparty/clDNN/api/cldnn/graph/program.hpp
@@ -2,11 +2,10 @@
// SPDX-License-Identifier: Apache-2.0
//
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
#pragma once
#include "cldnn/runtime/engine.hpp"
+#include "cldnn/primitives/implementation_desc.hpp"
#include "topology.hpp"
@@ -99,14 +98,6 @@ struct learning_params {
learning_params() : momentum(0.9f), weights_decay(0.0005f) {}
};
-/// @brief Description of primitives implementation.
-struct implementation_desc {
- format::type output_format; ///< Output format.
- std::string kernel_name; ///< GPU kernel name.
-};
-
-using implementation_forcing_map = std::map;
-
/// @brief Represents user-provided program build option.
struct build_option {
/// @brief Allow primitives fusing during program build (default: false).
diff --git a/inference-engine/thirdparty/clDNN/api/cldnn/primitives/implementation_desc.hpp b/inference-engine/thirdparty/clDNN/api/cldnn/primitives/implementation_desc.hpp
new file mode 100644
index 00000000000..4ce5fcab2e8
--- /dev/null
+++ b/inference-engine/thirdparty/clDNN/api/cldnn/primitives/implementation_desc.hpp
@@ -0,0 +1,70 @@
+// Copyright (C) 2021 Intel Corporation
+// SPDX-License-Identifier: Apache-2.0
+//
+
+#pragma once
+
+#include "cldnn/runtime/tensor.hpp"
+
+#include