remove **Default value**: None when **Required**: *yes* (#6638)

This commit is contained in:
Patryk Elszkowski 2021-07-14 14:00:29 +02:00 committed by GitHub
parent cbad1b2539
commit b9d02939b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
54 changed files with 112 additions and 247 deletions

View File

@ -25,7 +25,6 @@ clamp( x_{i} )=\min\big( \max\left( x_{i}, min\_value \right), max\_value \big)
* **Description**: *min* is the lower bound of values in the output.
* **Range of values**: arbitrary floating point number
* **Type**: `float`
* **Default value**: None
* **Required**: *yes*
* *max*
@ -33,7 +32,6 @@ clamp( x_{i} )=\min\big( \max\left( x_{i}, min\_value \right), max\_value \big)
* **Description**: *max* is the upper bound of values in the output.
* **Range of values**: arbitrary floating point number
* **Type**: `float`
* **Default value**: None
* **Required**: *yes*
**Inputs**:

View File

@ -29,7 +29,6 @@ where α corresponds to *alpha* attribute.
* **Description**: scale for the negative factor
* **Range of values**: non-negative arbitrary floating-point number
* **Type**: `float`
* **Default value**: none
* **Required**: *yes*
**Inputs**:

View File

@ -6,13 +6,13 @@
**Short description**: Computes 2D convolution of binary input and binary kernel tensors.
**Detailed description**: The operation behaves as regular *Convolution* but uses specialized algorithm for computations on binary data. More thorough explanation can be found in [Understanding Binary Neural Networks](https://sushscience.wordpress.com/2017/10/01/understanding-binary-neural-networks/) and [Bitwise Neural Networks](https://saige.sice.indiana.edu/wp-content/uploads/icml2015_mkim.pdf).
**Detailed description**: The operation behaves as regular *Convolution* but uses specialized algorithm for computations on binary data. More thorough explanation can be found in [Understanding Binary Neural Networks](https://sushscience.wordpress.com/2017/10/01/understanding-binary-neural-networks/) and [Bitwise Neural Networks](https://saige.sice.indiana.edu/wp-content/uploads/icml2015_mkim.pdf).
Computation algorithm for mode *xnor-popcount*:
Computation algorithm for mode *xnor-popcount*:
- `X = XNOR(input_patch, filter)`, where XNOR is bitwise operation on two bit streams
- `P = popcount(X)`, where popcount is the number of `1` bits in the `X` bit stream
- `Output = 2 * P - B`, where `B` is the total number of bits in the `P` bit stream
- `P = popcount(X)`, where popcount is the number of `1` bits in the `X` bit stream
- `Output = 2 * P - B`, where `B` is the total number of bits in the `P` bit stream
**Attributes**:
@ -21,7 +21,6 @@ Computation algorithm for mode *xnor-popcount*:
* **Description**: *strides* is a distance (in pixels) to slide the filter on the feature map over the `(y, x)` axes for 2D convolutions. For example, *strides* equal `2,1` means sliding the filter 2 pixel at a time over height dimension and 1 over width dimension.
* **Range of values**: integer values starting from 0
* **Type**: int[]
* **Default value**: None
* **Required**: *yes*
* *pads_begin*
@ -29,7 +28,6 @@ Computation algorithm for mode *xnor-popcount*:
* **Description**: *pads_begin* is a number of pixels to add to the beginning along each axis. For example, *pads_begin* equal `1,2` means adding 1 pixel to the top of the input and 2 to the left of the input.
* **Range of values**: integer values starting from 0
* **Type**: int[]
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
@ -38,7 +36,6 @@ Computation algorithm for mode *xnor-popcount*:
* **Description**: *pads_end* is a number of pixels to add to the ending along each axis. For example, *pads_end* equal `1,2` means adding 1 pixel to the bottom of the input and 2 to the right of the input.
* **Range of values**: integer values starting from 0
* **Type**: int[]
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
@ -47,7 +44,6 @@ Computation algorithm for mode *xnor-popcount*:
* **Description**: *dilations* denotes the distance in width and height between elements (weights) in the filter. For example, *dilation* equal `1,1` means that all the elements in the filter are neighbors, so it is the same as for the usual convolution. *dilation* equal `2,2` means that all the elements in the filter are matched not to adjacent elements in the input matrix, but to those that are adjacent with distance 1.
* **Range of values**: integer value starting from 0
* **Type**: int[]
* **Default value**: None
* **Required**: *yes*
* *mode*
@ -56,7 +52,6 @@ Computation algorithm for mode *xnor-popcount*:
* **Range of values**:
* *xnor-popcount*
* **Type**: `string`
* **Default value**: None
* **Required**: *yes*
* **Note**: value `0` in inputs is interpreted as `-1`, value `1` as `1`
@ -65,7 +60,6 @@ Computation algorithm for mode *xnor-popcount*:
* **Description**: *pad_value* is a floating-point value used to fill pad area.
* **Range of values**: a floating-point number
* **Type**: `float`
* **Default value**: None
* **Required**: *yes*
* *auto_pad*
@ -79,7 +73,7 @@ Computation algorithm for mode *xnor-popcount*:
* **Default value**: explicit
* **Required**: *no*
* **Note**: *pads_begin* and *pads_end* attributes are ignored when *auto_pad* is specified.
**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.
@ -89,7 +83,7 @@ Computation algorithm for mode *xnor-popcount*:
**Outputs**:
* **1**: Output tensor of type *T3* and rank 4. Layout is `[N, C_OUT, Y, X]` (number of batches, number of kernel output channels, spatial axes Y, X).
**Types**:
* *T1*: any numeric type with values `0` or `1`.

View File

@ -43,7 +43,6 @@ else:
* **Description**: *strides* has the same definition as *strides* for a regular Convolution but applied in the backward way, for the output tensor.
* **Range of values**: positive integers
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* *pads_begin*
@ -51,7 +50,6 @@ else:
* **Description**: *pads_begin* has the same definition as *pads_begin* for a regular Convolution but applied in the backward way, for the output tensor. May be omitted specified, in which case pads are calculated automatically.
* **Range of values**: non-negative integers
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
@ -60,21 +58,19 @@ else:
* **Description**: *pads_end* has the same definition as *pads_end* for a regular Convolution but applied in the backward way, for the output tensor. May be omitted, in which case pads are calculated automatically.
* **Range of values**: non-negative integers
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
* *dilations*
* **Description**: *dilations* has the same definition as *dilations* for a regular Convolution but applied in the backward way, for the output tensor.
* **Range of values**: positive integers
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* *auto_pad*
* **Description**: *auto_pad* has the same definition as *auto_pad* for a regular Convolution but applied in the backward way, for the output tensor.
* **Description**: *auto_pad* has the same definition as *auto_pad* for a regular Convolution but applied in the backward way, for the output tensor.
* *explicit*: use explicit padding values from `pads_begin` and `pads_end`.
* *same_upper* the input is padded to match the output size. In case of odd padding value an extra padding is added at the end.
* *same_lower* the input is padded to match the output size. In case of odd padding value an extra padding is added at the beginning.

View File

@ -6,27 +6,27 @@
**Short description**: Computes 1D, 2D or 3D convolution (cross-correlation to be precise) of input and kernel tensors.
**Detailed description**: Basic building block of convolution is a dot product of input patch and kernel. Whole operation consist of multiple such computations over multiple input patches and kernels. More thorough explanation can be found in [Convolutional Neural Networks](http://cs231n.github.io/convolutional-networks/#conv) and [Convolution operation](https://medium.com/apache-mxnet/convolutions-explained-with-ms-excel-465d6649831c).
**Detailed description**: Basic building block of convolution is a dot product of input patch and kernel. Whole operation consist of multiple such computations over multiple input patches and kernels. More thorough explanation can be found in [Convolutional Neural Networks](http://cs231n.github.io/convolutional-networks/#conv) and [Convolution operation](https://medium.com/apache-mxnet/convolutions-explained-with-ms-excel-465d6649831c).
For the convolutional layer, the number of output features in each dimension is calculated using the formula:
For the convolutional layer, the number of output features in each dimension is calculated using the formula:
\f[
n_{out} = \left ( \frac{n_{in} + 2p - k}{s} \right ) + 1
\f]
\f]
The receptive field in each layer is calculated using the formulas:
* Jump in the output feature map:
The receptive field in each layer is calculated using the formulas:
* Jump in the output feature map:
\f[
j_{out} = j_{in} * s
\f]
* Size of the receptive field of output feature:
* Size of the receptive field of output feature:
\f[
r_{out} = r_{in} + ( k - 1 ) * j_{in}
\f]
* Center position of the receptive field of the first output feature:
* Center position of the receptive field of the first output feature:
\f[
start_{out} = start_{in} + ( \frac{k - 1}{2} - p ) * j_{in}
\f]
* Output is calculated using the following formula:
* Output is calculated using the following formula:
\f[
out = \sum_{i = 0}^{n}w_{i}x_{i} + b
\f]
@ -38,7 +38,6 @@ The receptive field in each layer is calculated using the formulas:
* **Description**: *strides* is a distance (in pixels) to slide the filter on the feature map over the `(z, y, x)` axes for 3D convolutions and `(y, x)` axes for 2D convolutions. For example, *strides* equal `4,2,1` means sliding the filter 4 pixel at a time over depth dimension, 2 over height dimension and 1 over width dimension.
* **Range of values**: integer values starting from 0
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* *pads_begin*
@ -46,7 +45,6 @@ The receptive field in each layer is calculated using the formulas:
* **Description**: *pads_begin* is a number of pixels to add to the beginning along each axis. For example, *pads_begin* equal `1,2` means adding 1 pixel to the top of the input and 2 to the left of the input.
* **Range of values**: integer values starting from 0
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
@ -55,7 +53,6 @@ The receptive field in each layer is calculated using the formulas:
* **Description**: *pads_end* is a number of pixels to add to the ending along each axis. For example, *pads_end* equal `1,2` means adding 1 pixel to the bottom of the input and 2 to the right of the input.
* **Range of values**: integer values starting from 0
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
@ -64,7 +61,6 @@ The receptive field in each layer is calculated using the formulas:
* **Description**: *dilations* denotes the distance in width and height between elements (weights) in the filter. For example, *dilation* equal `1,1` means that all the elements in the filter are neighbors, so it is the same as for the usual convolution. *dilation* equal `2,2` means that all the elements in the filter are matched not to adjacent elements in the input matrix, but to those that are adjacent with distance 1.
* **Range of values**: integer value starting from 0
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* *auto_pad*
@ -182,4 +178,4 @@ The receptive field in each layer is calculated using the formulas:
</port>
</output>
</layer>
```
```

View File

@ -8,15 +8,15 @@
**Detailed description**: *Deformable Convolution* is similar to regular *Convolution* but its receptive field is deformed because of additional spatial offsets used during input sampling. More thorough explanation can be found in [Deformable Convolutions Demystified](https://towardsdatascience.com/deformable-convolutions-demystified-2a77498699e8) and [Deformable Convolutional Networks](https://arxiv.org/abs/1703.06211).
Output is calculated using the following formula:
Output is calculated using the following formula:
\f[
y(p) = \sum_{k = 1}^{K}w_{k}x(p + p_{k} + {\Delta}p_{k})
\f]
Where
Where
* K is a number of sampling locations, e.g. for kernel 3x3 and dilation = 1, K = 9
* \f$x(p)\f$ and \f$y(p)\f$ denote the features at location p from the input feature maps x and output feature maps y
@ -35,7 +35,6 @@ Where
* **Description**: *strides* is a distance (in pixels) to slide the filter on the feature map over the `(y,x)` axes. For example, *strides* equal `2,1` means sliding the filter 2 pixel at a time over height dimension and 1 over width dimension.
* **Range of values**: integer values starting from `0`
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* *pads_begin*
@ -43,7 +42,6 @@ Where
* **Description**: *pads_begin* is a number of pixels to add to the beginning along each axis. For example, *pads_begin* equal `1,2` means adding 1 pixel to the top of the input and 2 to the left of the input.
* **Range of values**: integer values starting from `0`
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
@ -52,7 +50,6 @@ Where
* **Description**: *pads_end* is a number of pixels to add to the ending along each axis. For example, *pads_end* equal `1,2` means adding 1 pixel to the bottom of the input and 2 to the right of the input.
* **Range of values**: integer values starting from `0`
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
@ -61,7 +58,6 @@ Where
* **Description**: *dilations* denotes the distance in width and height between elements (weights) in the filter. For example, *dilation* equal `1,1` means that all the elements in the filter are neighbors, so it is the same as for the usual convolution. *dilation* equal `2,2` means that all the elements in the filter are matched not to adjacent elements in the input matrix, but to those that are adjacent with distance 1.
* **Range of values**: integer value starting from `0`
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* *auto_pad*
@ -109,7 +105,7 @@ Where
**Types**:
* *T*: Any numeric type.
**Example**
2D DeformableConvolution (deformable_group=1)

View File

@ -10,14 +10,14 @@
Modification of DeformableConvolution using modulating scalars is also supported. Please refer to [Deformable ConvNets v2: More Deformable, Better Results](https://arxiv.org/pdf/1811.11168.pdf).
Output is calculated using the following formula:
Output is calculated using the following formula:
\f[
y(p) = \sum_{k = 1}^{K}w_{k}x(p + p_{k} + {\Delta}p_{k}) * {\Delta}m_{k}
\f]
Where
Where
* K is a number of sampling locations, e.g. for kernel 3x3 and dilation = 1, K = 9
* \f$x(p)\f$ and \f$y(p)\f$ denote the features at location p from the input feature maps x and output feature maps y
@ -38,7 +38,6 @@ Where
* **Description**: *strides* is a distance (in pixels) to slide the filter on the feature map over the `(y,x)` axes. For example, *strides* equal `2,1` means sliding the filter 2 pixel at a time over height dimension and 1 over width dimension.
* **Range of values**: integer values starting from `0`
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* *pads_begin*
@ -46,7 +45,6 @@ Where
* **Description**: *pads_begin* is a number of pixels to add to the beginning along each axis. For example, *pads_begin* equal `1,2` means adding 1 pixel to the top of the input and 2 to the left of the input.
* **Range of values**: integer values starting from `0`
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
@ -55,7 +53,6 @@ Where
* **Description**: *pads_end* is a number of pixels to add to the ending along each axis. For example, *pads_end* equal `1,2` means adding 1 pixel to the bottom of the input and 2 to the right of the input.
* **Range of values**: integer values starting from `0`
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
@ -64,7 +61,6 @@ Where
* **Description**: *dilations* denotes the distance in width and height between elements (weights) in the filter. For example, *dilation* equal `1,1` means that all the elements in the filter are neighbors, so it is the same as for the usual convolution. *dilation* equal `2,2` means that all the elements in the filter are matched not to adjacent elements in the input matrix, but to those that are adjacent with distance 1.
* **Range of values**: integer value starting from `0`
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* *auto_pad*
@ -103,7 +99,7 @@ Where
* **Type**: `boolean`
* **Default value**: `False`
* **Required**: *no*
**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.**
@ -122,7 +118,7 @@ Where
**Types**:
* *T*: Any numeric type.
**Example**
2D DeformableConvolution (deformable_group=1)

View File

@ -8,14 +8,13 @@
**Detailed description**: Splits input and filters into multiple groups, computes *ConvolutionBackpropData* on them and concatenates the results. It is equivalent to GroupConvolution and Convolution relationship.
**Attributes**: The operation has the same attributes as a *ConvolutionBackpropData*. Number of groups is derived from the kernel shape.
**Attributes**: The operation has the same attributes as a *ConvolutionBackpropData*. Number of groups is derived from the kernel shape.
* *strides*
* **Description**: *strides* has the same definition as *strides* for a regular Convolution but applied in the backward way, for the output tensor.
* **Range of values**: positive integers
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* *pads_begin*
@ -23,7 +22,6 @@
* **Description**: *pads_begin* has the same definition as *pads_begin* for a regular Convolution but applied in the backward way, for the output tensor. May be omitted, in which case pads are calculated automatically.
* **Range of values**: non-negative integers
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
@ -32,7 +30,6 @@
* **Description**: *pads_end* has the same definition as *pads_end* for a regular Convolution but applied in the backward way, for the output tensor. May be omitted, in which case pads are calculated automatically.
* **Range of values**: non-negative integers
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
@ -41,12 +38,11 @@
* **Description**: *dilations* has the same definition as *dilations* for a regular Convolution but applied in the backward way, for the output tensor.
* **Range of values**: positive integers
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* *auto_pad*
* **Description**: *auto_pad* has the same definition as *auto_pad* for a regular Convolution but applied in the backward way, for the output tensor.
* **Description**: *auto_pad* has the same definition as *auto_pad* for a regular Convolution but applied in the backward way, for the output tensor.
* *explicit* - use explicit padding values from *pads_begin* and *pads_end*.
* *same_upper* - the input is padded to match the output size. In case of odd padding value an extra padding is added at the end.
* *same_lower* - the input is padded to match the output size. In case of odd padding value an extra padding is added at the beginning.
@ -71,12 +67,12 @@
* **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.
* **Note** Number of groups is derived from the shape of the kernel and not specified by any attribute.
* **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
* 2D convolution (input tensors rank 4) means that there are two spatial axes Y, X
* 3D convolution (input tensors rank 5) means that there are three spatial axes Z, Y, X
**Outputs**:
* **1**: Output tensor of type `T1` and rank 3, 4 or 5 (the same as input *1*). Layout is `[N, GROUPS * C_OUT, Z, Y, X]` (number of batches, number of kernel output channels, spatial axes Z, Y, X).

View File

@ -4,19 +4,18 @@
**Category**: Convolution
**Short description**: Computes 1D, 2D or 3D GroupConvolution of input and kernel tensors.
**Short description**: Computes 1D, 2D or 3D GroupConvolution of input and kernel tensors.
**Detailed description**: Splits input into multiple groups, convolves them with group filters as in regular convolution and concatenates the results. More thorough explanation can be found in [ImageNet Classification with Deep Convolutional
Neural Networks](https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf)
**Attributes**: The operation has the same attributes as a regular _Convolution_. Number of groups is derived from the kernel shape.
**Attributes**: The operation has the same attributes as a regular _Convolution_. Number of groups is derived from the kernel shape.
* *strides*
* **Description**: *strides* is a distance (in pixels) to slide the filter on the feature map over the `(z, y, x)` axes for 3D convolutions and `(y, x)` axes for 2D convolutions. For example, *strides* equal `4,2,1` means sliding the filter 4 pixel at a time over depth dimension, 2 over height dimension and 1 over width dimension.
* **Range of values**: positive integer numbers
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* *pads_begin*
@ -24,25 +23,22 @@ Neural Networks](https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76
* **Description**: *pads_begin* is a number of pixels to add to the beginning along each axis. For example, *pads_begin* equal `1,2` means adding 1 pixel to the top of the input and 2 to the left of the input.
* **Range of values**: positive integer numbers
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
* *pads_end*
* **Description**: *pads_end* is a number of pixels to add to the ending along each axis. For example, *pads_end* equal `1,2` means adding 1 pixel to the bottom of the input and 2 to the right of the input.
* **Range of values**: positive integer numbers
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
* *dilations*
* **Description**: *dilations* denotes the distance in width and height between elements (weights) in the filter. For example, *dilation* equal `1,1` means that all the elements in the filter are neighbors, so it is the same as for the usual convolution. *dilation* equal `2,2` means that all the elements in the filter are matched not to adjacent elements in the input matrix, but to those that are adjacent with distance 1.
* **Range of values**: positive integer numbers
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* *auto_pad*
@ -61,7 +57,7 @@ Neural Networks](https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76
* **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** 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
* 2D convolution (input tensors rank 4) means that there are two spatial axes Y, X
@ -75,7 +71,7 @@ Neural Networks](https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76
* *T*: any numeric type.
**Example**:
**Example**:
1D GroupConvolution
```xml
<layer type="GroupConvolution" ...>
@ -161,4 +157,4 @@ Neural Networks](https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76
<dim>224</dim>
</port>
</output>
```
```

View File

@ -22,15 +22,13 @@ This operation is compatible with [MXNet DeformablePSROIPooling](https://mxnet.a
* **Description**: *output_dim* is the number of the output channels, size of output `C` dimension.
* **Range of values**: a positive integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *spatial_scale*
* **Description**: *spatial_scale* is a multiplicative spatial scale factor to translate ROI coordinates from their input original size to the pooling input. Ratio of the input score map size to the original image size.
* **Description**: *spatial_scale* is a multiplicative spatial scale factor to translate ROI coordinates from their input original size to the pooling input. Ratio of the input score map size to the original image size.
* **Range of values**: a positive floating-point number
* **Type**: `float`
* **Default value**: None
* **Required**: *yes*
* *group_size*
@ -74,7 +72,7 @@ This operation is compatible with [MXNet DeformablePSROIPooling](https://mxnet.a
* **Required**: *no*
* *part_size*
* **Description**: *part_size* is the size of `H` and `W` dimensions of the third input (offsets). Basically it is the height and width of the third input
* **Description**: *part_size* is the size of `H` and `W` dimensions of the third input (offsets). Basically it is the height and width of the third input
with transformation values.
* **Range of values**: positive integer number
* **Type**: `int`
@ -96,7 +94,7 @@ Batch indices must be in the range of `[0, N_in-1]`.
**Types**:
* *T*: Any floating point type.
**Example**

View File

@ -17,7 +17,6 @@ At each feature map cell, *DetectionOutput* predicts the offsets relative to the
* **Description**: number of classes to be predicted
* **Range of values**: positive integer number
* **Type**: int
* **Default value**: None
* **Required**: *yes*
* *background_label_id*
@ -49,7 +48,6 @@ At each feature map cell, *DetectionOutput* predicts the offsets relative to the
* **Description**: maximum number of bounding boxes per batch to be kept after NMS step. -1 means keeping all bounding boxes after NMS step.
* **Range of values**: integer values
* **Type**: int[]
* **Default value**: None
* **Required**: *yes*
* *code_type*
@ -73,7 +71,6 @@ At each feature map cell, *DetectionOutput* predicts the offsets relative to the
* **Description**: threshold to be used in the NMS stage
* **Range of values**: floating point values
* **Type**: float
* **Default value**: None
* **Required**: *yes*
* *confidence_threshold*

View File

@ -8,8 +8,8 @@
**Detailed description**: [Reference](https://arxiv.org/pdf/1703.06211.pdf).
*PSROIPooling* operation takes two input blobs: with feature maps and with regions of interests (box coordinates).
The latter is specified as five element tuples: *[batch_id, x_1, y_1, x_2, y_2]*.
*PSROIPooling* operation takes two input blobs: with feature maps and with regions of interests (box coordinates).
The latter is specified as five element tuples: *[batch_id, x_1, y_1, x_2, y_2]*.
ROIs coordinates are specified in absolute values for the average mode and in normalized values (to *[0,1]* interval) for bilinear interpolation.
**Attributes**
@ -19,7 +19,6 @@ ROIs coordinates are specified in absolute values for the average mode and in no
* **Description**: *output_dim* is a pooled output channel number.
* **Range of values**: a positive integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *group_size*
@ -35,7 +34,6 @@ ROIs coordinates are specified in absolute values for the average mode and in no
* **Description**: *spatial_scale* is a multiplicative spatial scale factor to translate ROI coordinates from their input scale to the scale used when pooling.
* **Range of values**: a positive floating-point number
* **Type**: `float`
* **Default value**: None
* **Required**: *yes*
* *mode*

View File

@ -28,7 +28,7 @@
* *step (step_w, step_h)*
* **Description**: *step (step_w, step_h)* is a distance between box centers. For example, *step* equal 85 means that the distance between neighborhood prior boxes centers is 85. If both *step_h* and *step_w* are 0 then they are updated with value of *step*. If after that they are still 0 then they are calculated as input image width(height) divided with first input width(height).
* **Description**: *step (step_w, step_h)* is a distance between box centers. For example, *step* equal 85 means that the distance between neighborhood prior boxes centers is 85. If both *step_h* and *step_w* are 0 then they are updated with value of *step*. If after that they are still 0 then they are calculated as input image width(height) divided with first input width(height).
* **Range of values**: floating point positive number
* **Type**: float
* **Default value**: 0.0
@ -39,7 +39,6 @@
* **Description**: *offset* is a shift of box respectively to top left corner. For example, *offset* equal 85 means that the shift of neighborhood prior boxes centers is 85.
* **Range of values**: floating point positive number
* **Type**: float
* **Default value**: None
* **Required**: *yes*
* *variance*
@ -126,4 +125,4 @@ If *clip* is defined, the coordinates of prior boxes are recalculated with the f
</port>
</output>
</layer>
```
```

View File

@ -92,7 +92,6 @@
* **Description**: *offset* is a shift of box respectively to top left corner.
* **Range of values**: floating point non-negative number
* **Type**: `float`
* **Default value**: None
* **Required**: *yes*
* *variance*
@ -172,4 +171,4 @@
</port>
</output>
</layer>
```
```

View File

@ -28,21 +28,18 @@
* **Description**: *base_size* is the size of the anchor to which *scale* and *ratio* attributes are applied.
* **Range of values**: a positive integer number
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *pre_nms_topn*
* **Description**: *pre_nms_topn* is the number of bounding boxes before the NMS operation. For example, *pre_nms_topn* equal to 15 means to take top 15 boxes with the highest scores.
* **Range of values**: a positive integer number
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *post_nms_topn*
* **Description**: *post_nms_topn* is the number of bounding boxes after the NMS operation. For example, *post_nms_topn* equal to 15 means to take after NMS top 15 boxes with the highest scores.
* **Range of values**: a positive integer number
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *nms_thresh*
@ -50,7 +47,6 @@
* **Description**: *nms_thresh* is the minimum value of the proposal to be taken into consideration. For example, *nms_thresh* equal to 0.5 means that all boxes with prediction probability less than 0.5 are filtered out.
* **Range of values**: a positive floating-point number
* **Type**: `float`
* **Default value**: None
* **Required**: *yes*
* *feat_stride*
@ -58,7 +54,6 @@
* **Description**: *feat_stride* is the step size to slide over boxes (in pixels). For example, *feat_stride* equal to 16 means that all boxes are analyzed with the slide 16.
* **Range of values**: a positive integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *min_size*
@ -66,7 +61,6 @@
* **Description**: *min_size* is the minimum size of box to be taken into consideration. For example, *min_size* equal 35 means that all boxes with box size less than 35 are filtered out.
* **Range of values**: a positive integer number
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *ratio*
@ -74,7 +68,6 @@
* **Description**: *ratio* is the ratios for anchor generation.
* **Range of values**: a list of floating-point numbers
* **Type**: `float[]`
* **Default value**: None
* **Required**: *yes*
* *scale*
@ -82,7 +75,6 @@
* **Description**: *scale* is the scales for anchor generation.
* **Range of values**: a list of floating-point numbers
* **Type**: `float[]`
* **Default value**: None
* **Required**: *yes*
* *clip_before_nms*

View File

@ -8,12 +8,12 @@
**Detailed description**
*Proposal* has three inputs: a 4D tensor of shape `[num_batches, 2*K, H, W]` with probabilities whether particular
bounding box corresponds to background or foreground, a 4D tensor of shape `[num_batches, 4*K, H, W]` with deltas for each
of the bound box, and a tensor with input image size in the `[image_height, image_width, scale_height_and_width]` or
`[image_height, image_width, scale_height, scale_width]` format. `K` is number of anchors and `H, W` are height and
width of the feature map. Operation produces two tensors:
the first mandatory tensor of shape `[batch_size * post_nms_topn, 5]` with proposed boxes and
*Proposal* has three inputs: a 4D tensor of shape `[num_batches, 2*K, H, W]` with probabilities whether particular
bounding box corresponds to background or foreground, a 4D tensor of shape `[num_batches, 4*K, H, W]` with deltas for each
of the bound box, and a tensor with input image size in the `[image_height, image_width, scale_height_and_width]` or
`[image_height, image_width, scale_height, scale_width]` format. `K` is number of anchors and `H, W` are height and
width of the feature map. Operation produces two tensors:
the first mandatory tensor of shape `[batch_size * post_nms_topn, 5]` with proposed boxes and
the second optional tensor of shape `[batch_size * post_nms_topn]` with probabilities (sometimes referred as scores).
*Proposal* layer does the following with the input tensor:
@ -37,21 +37,18 @@ the second optional tensor of shape `[batch_size * post_nms_topn]` with probabil
* **Description**: *base_size* is the size of the anchor to which *scale* and *ratio* attributes are applied.
* **Range of values**: a positive integer number
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *pre_nms_topn*
* **Description**: *pre_nms_topn* is the number of bounding boxes before the NMS operation. For example, *pre_nms_topn* equal to 15 means to take top 15 boxes with the highest scores.
* **Range of values**: a positive integer number
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *post_nms_topn*
* **Description**: *post_nms_topn* is the number of bounding boxes after the NMS operation. For example, *post_nms_topn* equal to 15 means to take after NMS top 15 boxes with the highest scores.
* **Range of values**: a positive integer number
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *nms_thresh*
@ -59,7 +56,6 @@ the second optional tensor of shape `[batch_size * post_nms_topn]` with probabil
* **Description**: *nms_thresh* is the minimum value of the proposal to be taken into consideration. For example, *nms_thresh* equal to 0.5 means that all boxes with prediction probability less than 0.5 are filtered out.
* **Range of values**: a positive floating-point number
* **Type**: `float`
* **Default value**: None
* **Required**: *yes*
* *feat_stride*
@ -67,7 +63,6 @@ the second optional tensor of shape `[batch_size * post_nms_topn]` with probabil
* **Description**: *feat_stride* is the step size to slide over boxes (in pixels). For example, *feat_stride* equal to 16 means that all boxes are analyzed with the slide 16.
* **Range of values**: a positive integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *min_size*
@ -75,7 +70,6 @@ the second optional tensor of shape `[batch_size * post_nms_topn]` with probabil
* **Description**: *min_size* is the minimum size of box to be taken into consideration. For example, *min_size* equal 35 means that all boxes with box size less than 35 are filtered out.
* **Range of values**: a positive integer number
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *ratio*
@ -83,7 +77,6 @@ the second optional tensor of shape `[batch_size * post_nms_topn]` with probabil
* **Description**: *ratio* is the ratios for anchor generation.
* **Range of values**: a list of floating-point numbers
* **Type**: `float[]`
* **Default value**: None
* **Required**: *yes*
* *scale*
@ -91,7 +84,6 @@ the second optional tensor of shape `[batch_size * post_nms_topn]` with probabil
* **Description**: *scale* is the scales for anchor generation.
* **Range of values**: a list of floating-point numbers
* **Type**: `float[]`
* **Default value**: None
* **Required**: *yes*
* *clip_before_nms*

View File

@ -20,7 +20,6 @@
* **Description**: *pooled_h* is the height of the ROI output feature map.
* **Range of values**: a positive integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *pooled_w*
@ -28,7 +27,6 @@
* **Description**: *pooled_w* is the width of the ROI output feature map.
* **Range of values**: a positive integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *sampling_ratio*
@ -37,7 +35,6 @@
is equal to 0 then use adaptive number of elements over height and width: `ceil(roi_height / pooled_h)` and `ceil(roi_width / pooled_w)` respectively.
* **Range of values**: a non-negative integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *spatial_scale*
@ -45,17 +42,15 @@
* **Description**: *spatial_scale* is a multiplicative spatial scale factor to translate ROI coordinates from their input spatial scale to the scale used when pooling.
* **Range of values**: a positive floating-point number
* **Type**: `float`
* **Default value**: None
* **Required**: *yes*
* *mode*
* **Description**: *mode* specifies a method to perform pooling to produce output feature map elements.
* **Range of values**:
* **Range of values**:
* *max* - maximum pooling
* *avg* - average pooling
* *avg* - average pooling
* **Type**: string
* **Default value**: None
* **Required**: *yes*
**Inputs**:
@ -63,7 +58,7 @@
* **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)`,
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.
* **3**: 1D input tensor of shape `[NUM_ROIS]` with batch indices of type *IND_T*. Required.
@ -106,7 +101,6 @@ The box height and width are calculated the following way: `roi_width = max(spat
<dim>6</dim>
<dim>6</dim>
</port>
</output>
</output>
</layer>
```

View File

@ -26,7 +26,6 @@ The box height and width have different representation based on **method** attri
* **Description**: *pooled_h* is the height of the ROI output feature map. For example, *pooled_h* equal to 6 means that the height of the output of *ROIPooling* is 6.
* **Range of values**: a non-negative integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *pooled_w*
@ -34,7 +33,6 @@ The box height and width have different representation based on **method** attri
* **Description**: *pooled_w* is the width of the ROI output feature map. For example, *pooled_w* equal to 6 means that the width of the output of *ROIPooling* is 6.
* **Range of values**: a non-negative integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *spatial_scale*
@ -42,7 +40,6 @@ The box height and width have different representation based on **method** attri
* **Description**: *spatial_scale* is the ratio of the input feature map over the input image size.
* **Range of values**: a positive floating-point number
* **Type**: `float`
* **Default value**: None
* **Required**: *yes*
* *method*

View File

@ -23,7 +23,6 @@
* **Description**: starting axis index in the input tensor `data` shape that will be flattened in the output; the end of flattened range is defined by `end_axis` attribute.
* **Range of values**: `-rank(data) .. rank(data)-1`
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *coords*
@ -31,7 +30,6 @@
* **Description**: *coords* is the number of coordinates for each region.
* **Range of values**: an integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *classes*
@ -39,7 +37,6 @@
* **Description**: *classes* is the number of classes for each region.
* **Range of values**: an integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *end_axis*
@ -47,7 +44,6 @@
* **Description**: ending axis index in the input tensor `data` shape that will be flattened in the output; the beginning of the flattened range is defined by `axis` attribute.
* **Range of values**: `-rank(data)..rank(data)-1`
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *num*
@ -55,7 +51,6 @@
* **Description**: *num* is the number of regions.
* **Range of values**: an integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *do_softmax*

View File

@ -17,7 +17,6 @@
* **Description**: *stride* is the distance between cut throws in output blobs.
* **Range of values**: positive integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
**Inputs**:

View File

@ -13,8 +13,7 @@
* **Description**: the output tensor type
* **Range of values**: any numeric type
* **Type**: string
* **Default value**: None
* **Required**: *Yes*
* **Required**: *yes*
**Inputs**:

View File

@ -13,7 +13,6 @@
* **Description**: `axes` specify spatial dimension indices where interpolation is applied. Other dimensions are treated as batch dimensions. The order of elements in `axes` attribute matters and mapped directly to elements with the same indices in the 2nd input `target_spatial_shape`.
* **Range of values**: list of non-negative integer numbers
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*
* *mode*
@ -21,7 +20,6 @@
* **Description**: specifies type of interpolation
* **Range of values**: one of `nearest`, `linear`, `cubic`, `area`
* **Type**: string
* **Default value**: none
* **Required**: *yes*
* *align_corners*
@ -95,4 +93,4 @@ This is a scalar that specifies padding for each spatial dimension.
</port>
</output>
</layer>
```
```

View File

@ -13,7 +13,6 @@
* **Description**: specifies type of interpolation
* **Range of values**: one of `nearest`, `linear`, `linear_onnx`, `cubic`
* **Type**: string
* **Default value**: none
* **Required**: *yes*
**Note**: Only 2D, 3D, 4D, 5D tensors with `axes = {0, 1}`, `axes = {0, 1, 2}`, `axes = {2, 3}`, `axes = {2, 3, 4}` respectively are supported for `"mode" == "linear_onnx"`.
@ -24,7 +23,6 @@
* `sizes` - an output shape is calculated as `output_shape[axes[i]] = sizes[i]` for all `i in range(0, len(axes))` and `output_shape[j] = input_shape[j] + pads_begin[j] + pads_end[j]` for `j not in axes`, `j in range(0, rank(data))`.
* `scales` - an output shape is calculated as `output_shape[axes[i]] = floor(scales[i] * (input_shape[axes[i]] + pads_begin[axes[i]] + pads_end[axes[i]]))` for all `i in range(0, len(axes))` and `output_shape[j] = input_shape[j] + pads_begin[j] + pads_end[j]` for `j not in axes`, `j in range(0, rank(data))`
* **Type**: string
* **Default value**: none
* **Required**: *yes*
* *coordinate_transformation_mode*

View File

@ -9,18 +9,17 @@
**Detailed description**:
*Assign* operation sets an input value to the `variable_id` variable. This value will be returned by *ReadValue* operation on next infer if variable was not reset.
The operation checks that the type and shape of the input are the same as
The operation checks that the type and shape of the input are the same as
declared in `variable_id` and returns an error otherwise.
**Attributes**:
**Attributes**:
* *variable_id*
* **Description**: identificator of the variable to be updated
* **Range of values**: any non-empty string
* **Type**: string
* **Default value**: None
* **Required**: *Yes*
* **Required**: *yes*
**Inputs**
@ -44,4 +43,4 @@ declared in `variable_id` and returns an error otherwise.
</port>
</input>
</layer>
```
```

View File

@ -13,7 +13,6 @@
* **Description**: specifies position in binary file with weights where the content of the constant begins; value in bytes
* **Range of values**: non-negative integer value
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *size*
@ -21,7 +20,6 @@
* **Description**: size of constant content in binary files; value in bytes
* **Range of values**: positive integer bigger than zero
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *element_type*
@ -29,16 +27,14 @@
* **Description**: the type of element of output tensor
* **Range of values**: u1, u8, u16, u32, u64, i8, i16, i32, i64, f16, f32, boolean, bf16
* **Type**: `string`
* **Default value**: None
* **Required**: *Yes*
* **Required**: *yes*
* *shape*
* **Description**: the shape of the output tensor
* **Range of values**: list of non-negative integers, empty list is allowed, which means 0D or scalar tensor
* **Type**: `int[]`
* **Default value**: None
* **Required**: *Yes*
* **Required**: *yes*
**Outputs**

View File

@ -13,7 +13,6 @@
* **Description**: the type of element of output tensor
* **Range of values**: u1, u4, u8, u16, u32, u64, i4, i8, i16, i32, i64, f16, f32, boolean, bf16
* **Type**: `string`
* **Default value**: None
* **Required**: *yes*
* *shape*
@ -21,7 +20,6 @@
* **Description**: the shape of the output tensor
* **Range of values**: list of non-negative integers, empty list is allowed, which means 0D or scalar tensor
* **Type**: `int[]`
* **Default value**: None
* **Required**: *yes*

View File

@ -6,9 +6,9 @@
**Short description**: *ReadValue* returns value of the `variable_id` variable.
**Detailed description**:
**Detailed description**:
*ReadValue* returns value from the corresponding `variable_id` variable if the variable was set already by *Assign* operation and was not reset.
*ReadValue* returns value from the corresponding `variable_id` variable if the variable was set already by *Assign* operation and was not reset.
The operation checks that the type and shape of the output are the same as
declared in `variable_id` and returns an error otherwise. If the corresponding variable was not set or was reset,
the operation returns the value from the 1 input, and initializes the `variable_id` shape and type
@ -21,8 +21,7 @@ with the shape and type from the 1 input.
* **Description**: identificator of the variable to be read
* **Range of values**: any non-empty string
* **Type**: string
* **Default value**: None
* **Required**: *Yes*
* **Required**: *yes*
**Inputs**
@ -54,4 +53,4 @@ with the shape and type from the 1 input.
</port>
</output>
</layer>
```
```

View File

@ -13,7 +13,6 @@
* **Description**: *axis* specifies dimension to concatenate along
* **Range of values**: integer number. Negative value means counting dimension from the end. The range is `[-R, R-1]`, where `R` is the rank of all inputs.
* **Type**: int
* **Default value**: None
* **Required**: *yes*
**Inputs**:

View File

@ -43,7 +43,6 @@ If `mode = depth_first`:
* *blocks_first*: the input depth is divided to `[block_size, ..., block_size, new_depth]`
* *depth_first*: the input depth is divided to `[new_depth, block_size, ..., block_size]`
* **Type**: `string`
* **Default value**: None
* **Required**: *yes*
**Inputs**

View File

@ -22,7 +22,6 @@ The "auto_pad" attribute has no effect on the size of each patch, it determines
* **Description**: *sizes* is a size `[size_rows, size_cols]` of the extracted patches.
* **Range of values**: non-negative integer number
* **Type**: int[]
* **Default value**: None
* **Required**: *yes*
* *strides*
@ -30,15 +29,13 @@ The "auto_pad" attribute has no effect on the size of each patch, it determines
* **Description**: *strides* is a distance `[stride_rows, stride_cols]` between centers of two consecutive patches in an input tensor.
* **Range of values**: non-negative integer number
* **Type**: int[]
* **Default value**: None
* **Required**: *yes*
* *rates*
* **Description**: *rates* is the input stride `[rate_rows, rate_cols]`, specifying how far two consecutive patch samples are in the input. Equivalent to extracting patches with `patch_sizes_eff = patch_sizes + (patch_sizes - 1) * (rates - 1)`, followed by subsampling them spatially by a factor of rates. This is equivalent to rate in dilated (a.k.a. Atrous) convolutions.
* **Description**: *rates* is the input stride `[rate_rows, rate_cols]`, specifying how far two consecutive patch samples are in the input. Equivalent to extracting patches with `patch_sizes_eff = patch_sizes + (patch_sizes - 1) * (rates - 1)`, followed by subsampling them spatially by a factor of rates. This is equivalent to rate in dilated (a.k.a. Atrous) convolutions.
* **Range of values**: non-negative integer number
* **Type**: int[]
* **Default value**: None
* **Required**: *yes*
* *auto_pad*
@ -47,7 +44,6 @@ The "auto_pad" attribute has no effect on the size of each patch, it determines
* *same_upper (same_lower)* the input is padded by zeros to match the output size. In case of odd padding value an extra padding is added at the end (at the beginning).
* *valid* - do not use padding.
* **Type**: string
* **Default value**: None
* **Required**: *yes*
**Inputs**
@ -77,7 +73,7 @@ The "auto_pad" attribute has no effect on the size of each patch, it determines
</port>
</input>
<output>
<port id="1" precision="f32">
<port id="1" precision="f32">
<dim>64</dim>
<dim>27</dim>
<dim>2</dim>
@ -105,7 +101,7 @@ Image is a `1 x 1 x 10 x 10` array that contains the numbers 1 through 100. We u
\end{bmatrix}
\f]
output:
output:
```
[[[[ 1 6]
[51 56]]
@ -132,10 +128,10 @@ Image is a `1 x 1 x 10 x 10` array that contains the numbers 1 through 100. We u
[72 77]]
[[23 28]
[73 78]]]]
[73 78]]]]
```
output shape: `[1, 9, 2, 2]`
2. `sizes="4,4", strides="8,8", rates="1,1", auto_pad="valid"`
\f[
\begin{bmatrix}
@ -151,9 +147,9 @@ Image is a `1 x 1 x 10 x 10` array that contains the numbers 1 through 100. We u
91 & 92 & 93 & 94 & 95 & 96 & 79 & 98 & 99 & 100
\end{bmatrix}
\f]
output:
```
output:
```
[[[[ 1]]
[[ 2]]
@ -206,7 +202,7 @@ Image is a `1 x 1 x 10 x 10` array that contains the numbers 1 through 100. We u
x & x & x & x & 0 & 0 & 0 & 0 & 0 & x & x & x & x
\end{bmatrix}
\f]
output:
output:
```
[[[[ 0 0]
[ 0 89]]
@ -254,11 +250,11 @@ Image is a `1 x 1 x 10 x 10` array that contains the numbers 1 through 100. We u
[ 0 0]]
[[ 23 0]
[ 0 0]]]]
[ 0 0]]]]
```
output shape: `[1, 16, 2, 2]`
4. `sizes="3,3", strides="5,5", rates="2,2", auto_pad="valid"`
4. `sizes="3,3", strides="5,5", rates="2,2", auto_pad="valid"`
This time we use the symbols `x`, `y`, `z` and `k` to distinguish the patches:
\f[
\begin{bmatrix}
@ -302,12 +298,12 @@ This time we use the symbols `x`, `y`, `z` and `k` to distinguish the patches:
[ 93 98]]
[[ 45 50]
[ 95 100]]]]
[ 95 100]]]]
```
output_shape: `[1, 9, 2, 2]`
5. `sizes="2,2", strides="3,3", rates="1,1", auto_pad="valid"`
Image is a `1 x 2 x 5 x 5` array that contains two feature maps where feature map with coordinate 0 contains numbers in a range `[1, 25]` and feature map with coordinate 1 contains numbers in a range `[26, 50]`
5. `sizes="2,2", strides="3,3", rates="1,1", auto_pad="valid"`
Image is a `1 x 2 x 5 x 5` array that contains two feature maps where feature map with coordinate 0 contains numbers in a range `[1, 25]` and feature map with coordinate 1 contains numbers in a range `[26, 50]`
\f[
\begin{bmatrix}
@ -349,6 +345,6 @@ Image is a `1 x 2 x 5 x 5` array that contains two feature maps where feature ma
[22 25]]
[[32 35]
[47 50]]]]
```
[47 50]]]]
```
output shape: `[1, 8, 2, 2]`

View File

@ -69,7 +69,6 @@ OUTPUT =
* `reflect` - padded values are a reflection of the input `data` tensor; values on the edges are not duplicated. `pads_begin[D]` and `pads_end[D]` must be not greater than `data.shape[D] 1` for any valid `D`.
* `symmetric` - padded values are symmetrically added from the input `data` tensor. This method is similar to the `reflect`, but values on edges are duplicated. Refer to the examples above for more details. `pads_begin[D]` and `pads_end[D]` must be not greater than `data.shape[D]` for any valid `D`.
* **Type**: `string`
* **Default value**: None
* **Required**: *yes*
**Inputs**

View File

@ -6,7 +6,7 @@
**Short description**: *Reverse* operations reverse specified axis in an input tensor.
**Detailed description**: *Reverse* produces a tensor with the same shape as the first input tensor and with elements reversed along dimensions specified in the second input tensor. The axes can be represented either by dimension indices or as a mask. The interpretation of the second input is determined by *mode* attribute.
**Detailed description**: *Reverse* produces a tensor with the same shape as the first input tensor and with elements reversed along dimensions specified in the second input tensor. The axes can be represented either by dimension indices or as a mask. The interpretation of the second input is determined by *mode* attribute.
If `index` mode is used, the second tensor should contain indices of axes that should be reversed. The length of the second tensor should be in a range from 0 to rank of the 1st input tensor.
@ -21,7 +21,6 @@ If no axis specified, that means either the second input is empty if `index` mod
* **Description**: specifies how the second input tensor should be interpreted: as a set of indices or a mask
* **Range of values**: `index`, `mask`
* **Type**: `string`
* **Default value**: None
* **Required**: *yes*
**Inputs**:
@ -65,4 +64,4 @@ If no axis specified, that means either the second input is empty if `index` mod
</port>
</output>
</layer>
```
```

View File

@ -44,7 +44,6 @@ If `mode = depth_first`:
* *blocks_first*: the output depth is gathered from `[block_size, ..., block_size, C]`
* *depth_first*: the output depth is gathered from `[C, block_size, ..., block_size]`
* **Type**: `string`
* **Default value**: None
* **Required**: *yes*
**Inputs**

View File

@ -24,7 +24,6 @@ Where D is the rank of input tensor `data`. The axis being split must be evenly
* **Description**: number of outputs into which the input tensor `data` will be split along `axis` dimension. The dimension of `data` shape along `axis` must be evenly divisible by *num_splits*
* **Range of values**: an integer within the range `[1, data.shape[axis]]`
* **Type**: `int`
* **Default value**: none
* **Required**: *yes*
**Inputs**

View File

@ -60,7 +60,6 @@ For a particular activation, consider a mini-batch \f$\mathcal{B}\f$ of m values
* **Description**: *epsilon* is a constant added to the variance for numerical stability.
* **Range of values**: a floating-point number greater than or equal to zero
* **Type**: `float`
* **Default value**: none
* **Required**: *yes*
**Inputs**

View File

@ -60,7 +60,6 @@ For a particular activation, consider a mini-batch \f$\mathcal{B}\f$ of m values
* **Description**: *epsilon* is a constant added to the variance for numerical stability.
* **Range of values**: a floating-point number greater than or equal to zero
* **Type**: `float`
* **Default value**: none
* **Required**: *yes*
**Inputs**

View File

@ -19,7 +19,6 @@
* **Description**: *bias* is added to the variance.
* **Range of values**: a non-negative floating point value
* **Type**: `float`
* **Default value**: None
* **Required**: *yes*
**Inputs**
@ -52,4 +51,4 @@
</port>
</output>
</layer>
```
```

View File

@ -34,7 +34,6 @@ output = data / (bias + (alpha / size ** len(axes)) * sqr_sum) ** beta
* **Description**: *alpha* represents the scaling attribute for the normalizing sum. For example, *alpha* equal `0.0001` means that the normalizing sum is multiplied by `0.0001`.
* **Range of values**: no restrictions
* **Type**: `float`
* **Default value**: None
* **Required**: *yes*
* *beta*
@ -42,7 +41,6 @@ output = data / (bias + (alpha / size ** len(axes)) * sqr_sum) ** beta
* **Description**: *beta* represents the exponent for the normalizing sum. For example, *beta* equal `0.75` means that the normalizing sum is raised to the power of `0.75`.
* **Range of values**: positive number
* **Type**: `float`
* **Default value**: None
* **Required**: *yes*
* *bias*
@ -50,7 +48,6 @@ output = data / (bias + (alpha / size ** len(axes)) * sqr_sum) ** beta
* **Description**: *bias* represents the offset. Usually positive number to avoid dividing by zero.
* **Range of values**: no restrictions
* **Type**: `float`
* **Default value**: None
* **Required**: *yes*
* *size*
@ -58,7 +55,6 @@ output = data / (bias + (alpha / size ** len(axes)) * sqr_sum) ** beta
* **Description**: *size* represents the side length of the region to be used for the normalization sum. The region can have one or more dimensions depending on the second input axes indices.
* **Range of values**: positive integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
**Inputs**

View File

@ -44,7 +44,6 @@ o_{i}=\frac{o_{i}}{\sum \sqrt {o_{k}^2}+\epsilon}
* **Description**: *eps* is the number to be added to the variance to avoid division by zero when normalizing the value. For example, *epsilon* equal to 0.001 means that 0.001 is added to the variance.
* **Range of values**: a positive floating-point number
* **Type**: `float`
* **Default value**: None
* **Required**: *yes*
**Inputs**
@ -77,4 +76,4 @@ o_{i}=\frac{o_{i}}{\sum \sqrt {o_{k}^2}+\epsilon}
</port>
</output>
</layer>
```
```

View File

@ -33,7 +33,6 @@ o_{i}=\frac{o_{i}}{\sqrt {\sum {o_{k}^2}}+\epsilon}
* `false` -- Do not normalize variance
* `true` -- Normalize variance
* **Type**: `boolean`
* **Default value**: None
* **Required**: *yes*
* *eps*
@ -41,7 +40,6 @@ o_{i}=\frac{o_{i}}{\sqrt {\sum {o_{k}^2}}+\epsilon}
* **Description**: *eps* is the number to be added to the variance to avoid division by zero when normalizing the value.
* **Range of values**: a positive floating-point number
* **Type**: `float`
* **Default value**: None
* **Required**: *yes*
* *eps_mode*
@ -51,7 +49,6 @@ o_{i}=\frac{o_{i}}{\sqrt {\sum {o_{k}^2}}+\epsilon}
* `inside_sqrt` -- Add epsilon inside sqrt
* `outside_sqrt` -- Add epsilon outside of sqrt
* **Type**: `string`
* **Default value**: None
* **Required**: *yes*
**Inputs**
@ -95,4 +92,4 @@ o_{i}=\frac{o_{i}}{\sqrt {\sum {o_{k}^2}}+\epsilon}
</port>
</output>
</layer>
```
```

View File

@ -6,11 +6,11 @@
**Short description**: [Reference](http://caffe.berkeleyvision.org/tutorial/layers/pooling.html)
**Detailed description**: [Reference](http://cs231n.github.io/convolutional-networks/#pool). Average Pool is a pooling operation that performs down-sampling by dividing the input into pooling regions of size specified by kernel attribute and computing the average values of each region. Output shape is calculated as follows:
`H_out = (H + pads_begin[0] + pads_end[0] - kernel[0] / strides[0]) + 1`
`W_out = (H + pads_begin[1] + pads_end[1] - kernel[1] / strides[1]) + 1`
`D_out = (H + pads_begin[2] + pads_end[2] - kernel[2] / strides[2]) + 1`
**Detailed description**: [Reference](http://cs231n.github.io/convolutional-networks/#pool). Average Pool is a pooling operation that performs down-sampling by dividing the input into pooling regions of size specified by kernel attribute and computing the average values of each region. Output shape is calculated as follows:
`H_out = (H + pads_begin[0] + pads_end[0] - kernel[0] / strides[0]) + 1`
`W_out = (H + pads_begin[1] + pads_end[1] - kernel[1] / strides[1]) + 1`
`D_out = (H + pads_begin[2] + pads_end[2] - kernel[2] / strides[2]) + 1`
**Attributes**: *Pooling* attributes are specified in the `data` node, which is a child of the layer node.
@ -19,7 +19,6 @@
* **Description**: *strides* is a distance (in pixels) to slide the window on the feature map over the (z, y, x) axes for 3D poolings and (y, x) axes for 2D poolings. For example, *strides* equal "4,2,1" means sliding the window 4 pixel at a time over depth dimension, 2 over height dimension and 1 over width dimension.
* **Range of values**: integer values starting from 0
* **Type**: int[]
* **Default value**: None
* **Required**: *yes*
* *pads_begin*
@ -27,7 +26,6 @@
* **Description**: *pads_begin* is a number of pixels to add to the beginning along each axis. For example, *pads_begin* equal "1,2" means adding 1 pixel to the top of the input and 2 to the left of the input.
* **Range of values**: integer values starting from 0
* **Type**: int[]
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
@ -36,7 +34,6 @@
* **Description**: *pads_end* is a number of pixels to add to the ending along each axis. For example, *pads_end* equal "1,2" means adding 1 pixel to the bottom of the input and 2 to the right of the input.
* **Range of values**: integer values starting from 0
* **Type**: int[]
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
@ -45,15 +42,13 @@
* **Description**: *kernel* is a size of each filter. For example, *kernel* equal (2, 3) means that each filter has height equal to 2 and width equal to 3.
* **Range of values**: integer values starting from 1
* **Type**: int[]
* **Default value**: None
* **Required**: *yes*
* *exclude-pad*
* **Description**: *exclude-pad* is a type of pooling strategy for values in the padding area. For example, if *exclude-pad* is "true", then zero-values that came from padding are not included in averaging calculation.
* **Range of values**: true or false
* **Range of values**: true or false
* **Type**: boolean
* **Default value**: None
* **Required**: *yes*
* *rounding_type*
@ -95,7 +90,7 @@ output_{j} = \frac{\sum_{i = 0}^{n}x_{i}}{n}
```xml
<layer ... type="AvgPool" ... >
<data auto_pad="same_upper" exclude-pad="true" kernel="2,2" pads_begin="0,0" pads_end="1,1" strides="2,2"/>
<input>
<input>
<port id="0">
<dim>1</dim>
<dim>3</dim>
@ -115,7 +110,7 @@ output_{j} = \frac{\sum_{i = 0}^{n}x_{i}}{n}
<layer ... type="AvgPool" ... >
<data auto_pad="same_upper" exclude-pad="false" kernel="5,5" pads_begin="0,0" pads_end="1,1" strides="2,2"/>
<input>
<input>
<port id="0">
<dim>1</dim>
<dim>3</dim>
@ -135,7 +130,7 @@ output_{j} = \frac{\sum_{i = 0}^{n}x_{i}}{n}
<layer ... type="AvgPool" ... >
<data auto_pad="explicit" exclude-pad="true" kernel="5,5" pads_begin="1,1" pads_end="1,1" strides="3,3"/>
<input>
<input>
<port id="0">
<dim>1</dim>
<dim>3</dim>
@ -155,7 +150,7 @@ output_{j} = \frac{\sum_{i = 0}^{n}x_{i}}{n}
<layer ... type="AvgPool" ... >
<data auto_pad="explicit" exclude-pad="false" kernel="5,5" pads_begin="1,1" pads_end="1,1" strides="2,2"/>
<input>
<input>
<port id="0">
<dim>1</dim>
<dim>3</dim>
@ -175,7 +170,7 @@ output_{j} = \frac{\sum_{i = 0}^{n}x_{i}}{n}
<layer ... type="AvgPool" ... >
<data auto_pad="valid" exclude-pad="true" kernel="5,5" pads_begin="1,1" pads_end="1,1" strides="2,2"/>
<input>
<input>
<port id="0">
<dim>1</dim>
<dim>3</dim>
@ -192,4 +187,4 @@ output_{j} = \frac{\sum_{i = 0}^{n}x_{i}}{n}
</port>
</output>
</layer>
```
```

View File

@ -15,7 +15,6 @@
* **Description**: *strides* is a distance (in pixels) to slide the window on the feature map over the (z, y, x) axes for 3D poolings and (y, x) axes for 2D poolings. For example, *strides* equal "4,2,1" means sliding the window 4 pixel at a time over depth dimension, 2 over height dimension and 1 over width dimension.
* **Range of values**: integer values starting from 0
* **Type**: int[]
* **Default value**: None
* **Required**: *yes*
* *pads_begin*
@ -23,7 +22,6 @@
* **Description**: *pads_begin* is a number of pixels to add to the beginning along each axis. For example, *pads_begin* equal "1,2" means adding 1 pixel to the top of the input and 2 to the left of the input.
* **Range of values**: integer values starting from 0
* **Type**: int[]
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
@ -32,7 +30,6 @@
* **Description**: *pads_end* is a number of pixels to add to the ending along each axis. For example, *pads_end* equal "1,2" means adding 1 pixel to the bottom of the input and 2 to the right of the input.
* **Range of values**: integer values starting from 0
* **Type**: int[]
* **Default value**: None
* **Required**: *yes*
* **Note**: the attribute is ignored when *auto_pad* attribute is specified.
@ -41,7 +38,6 @@
* **Description**: *kernel* is a size of each filter. For example, *kernel* equal (2, 3) means that each filter has height equal to 2 and width equal to 3.
* **Range of values**: integer values starting from 1
* **Type**: int[]
* **Default value**: None
* **Required**: *yes*
* *rounding_type*

View File

@ -29,7 +29,6 @@ else:
* **Description**: *levels* is the number of quantization levels (e.g. 2 is for binarization, 255/256 is for int8 quantization)
* **Range of values**: an integer greater than or equal to 2
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *auto_broadcast*

View File

@ -13,7 +13,6 @@
* **Description**: *hidden_size* specifies hidden state size.
* **Range of values**: a positive integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *activations*

View File

@ -18,7 +18,6 @@ A single cell in the sequence is implemented in the same way as in <a href="#GRU
* **Description**: *hidden_size* specifies hidden state size.
* **Range of values**: a positive integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *activations*
@ -50,8 +49,7 @@ A single cell in the sequence is implemented in the same way as in <a href="#GRU
* **Description**: Specify if the RNN is forward, reverse, or bidirectional. If it is one of *forward* or *reverse* then `num_directions = 1`, if it is *bidirectional*, then `num_directions = 2`. This `num_directions` value specifies input/output shape requirements.
* **Range of values**: *forward*, *reverse*, *bidirectional*
* **Type**: `string`
* **Default value**: None
* **Required**: *Yes*
* **Required**: *yes*
* *linear_before_reset*
@ -133,4 +131,4 @@ A single cell in the sequence is implemented in the same way as in <a href="#GRU
</port>
</output>
</layer>
```
```

View File

@ -30,7 +30,6 @@ tanh - (e^{2x} - 1)/(e^{2x} + 1)
* **Description**: *hidden_size* specifies hidden state size.
* **Range of values**: a positive integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *activations*
@ -122,4 +121,4 @@ tanh - (e^{2x} - 1)/(e^{2x} + 1)
</port>
</output>
</layer>
```
```

View File

@ -18,7 +18,6 @@ A single cell in the sequence is implemented in the same way as in <a href="#LST
* **Description**: *hidden_size* specifies hidden state size.
* **Range of values**: a positive integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *activations*
@ -50,8 +49,7 @@ A single cell in the sequence is implemented in the same way as in <a href="#LST
* **Description**: Specify if the RNN is forward, reverse, or bidirectional. If it is one of *forward* or *reverse* then `num_directions = 1`, if it is *bidirectional*, then `num_directions = 2`. This `num_directions` value specifies input/output shape requirements.
* **Range of values**: *forward*, *reverse*, *bidirectional*
* **Type**: `string`
* **Default value**: None
* **Required**: *Yes*
* **Required**: *yes*
**Inputs**
@ -139,4 +137,4 @@ A single cell in the sequence is implemented in the same way as in <a href="#LST
</port>
</output>
</layer>
```
```

View File

@ -27,7 +27,6 @@ The types of input scalars `on_value` and `off_value` should match and be equal
* **Description**: *axis* is a new axis position in the output shape to fill with one-hot values.
* **Range of values**: an integer. Negative value means counting dimension from the end.
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
**Inputs**:
@ -95,4 +94,4 @@ The types of input scalars `on_value` and `off_value` should match and be equal
</port>
</output>
</layer>
```
```

View File

@ -13,7 +13,6 @@
* **Description**: *hidden_size* specifies hidden state size.
* **Range of values**: a positive integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *activations*
@ -92,4 +91,4 @@
</port>
</output>
</layer>
```
```

View File

@ -18,7 +18,6 @@ A single cell in the sequence is implemented in the same way as in <a href="#RNN
* **Description**: *hidden_size* specifies hidden state size.
* **Range of values**: a positive integer
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *activations*
@ -50,8 +49,7 @@ A single cell in the sequence is implemented in the same way as in <a href="#RNN
* **Description**: Specify if the RNN is forward, reverse, or bidirectional. If it is one of *forward* or *reverse* then `num_directions = 1`, if it is *bidirectional*, then `num_directions = 2`. This `num_directions` value specifies input/output shape requirements.
* **Range of values**: *forward*, *reverse*, *bidirectional*
* **Type**: `string`
* **Default value**: None
* **Required**: *Yes*
* **Required**: *yes*
**Inputs**
@ -125,4 +123,4 @@ A single cell in the sequence is implemented in the same way as in <a href="#RNN
</port>
</output>
</layer>
```
```

View File

@ -21,7 +21,6 @@ If `special_zero` is set to `true` index of `0` cannot be larger than the rank o
* **Description**: *special_zero* controls how zero values in `shape` are interpreted. If *special_zero* is `false`, then `0` is interpreted as-is which means that output shape will contain a zero dimension at the specified location. Input and output tensors are empty in this case. If *special_zero* is `true`, then all zeros in `shape` implies the copying of corresponding dimensions from `data.shape` into the output shape *(left aligned)*.
* **Range of values**: `false` or `true`
* **Type**: `boolean`
* **Default value**: None
* **Required**: *yes*
**Inputs**:

View File

@ -13,7 +13,6 @@
* **Description**: Specifies the axis along which the values are retrieved.
* **Range of values**: An integer. Negative value means counting dimension from the end.
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *mode*
@ -21,7 +20,6 @@
* **Description**: Specifies which operation is used to select the biggest element of two.
* **Range of values**: `min`, `max`
* **Type**: `string`
* **Default value**: None
* **Required**: *yes*
* *sort*
@ -29,7 +27,6 @@
* **Description**: Specifies order of output elements and/or indices.
* **Range of values**: `value`, `index`, `none`
* **Type**: `string`
* **Default value**: None
* **Required**: *yes*
* *index_element_type*

View File

@ -13,7 +13,6 @@
* **Description**: Specifies the axis along which the values are retrieved.
* **Range of values**: An integer. Negative value means counting dimension from the end.
* **Type**: `int`
* **Default value**: None
* **Required**: *yes*
* *mode*
@ -21,7 +20,6 @@
* **Description**: Specifies which operation is used to select the biggest element of two.
* **Range of values**: `min`, `max`
* **Type**: `string`
* **Default value**: None
* **Required**: *yes*
* *sort*
@ -29,7 +27,6 @@
* **Description**: Specifies order of output elements and/or indices.
* **Range of values**: `value`, `index`, `none`
* **Type**: `string`
* **Default value**: None
* **Required**: *yes*
* *index_element_type*

View File

@ -25,8 +25,7 @@ where `a` corresponds to the input tensor.
* **Description**: the destination type.
* **Range of values**: one of the supported types *T*
* **Type**: `string`
* **Default value**: None
* **Required**: *Yes*
* **Required**: *yes*
**Inputs**
@ -58,4 +57,4 @@ where `a` corresponds to the input tensor.
</port>
</output>
</layer>
```
```