Unique-10 operator specification (#13361)
This commit is contained in:
parent
28954a82d9
commit
b00796324c
@ -200,6 +200,7 @@
|
||||
TopK-1 <openvino_docs_ops_sort_TopK_1>
|
||||
TopK-3 <openvino_docs_ops_sort_TopK_3>
|
||||
Transpose-1 <openvino_docs_ops_movement_Transpose_1>
|
||||
Unique-10 <openvino_docs_ops_movement_Unique_10>
|
||||
Unsqueeze-1 <openvino_docs_ops_shape_Unsqueeze_1>
|
||||
VariadicSplit-1 <openvino_docs_ops_movement_VariadicSplit_1>
|
||||
|
||||
|
@ -53,7 +53,7 @@
|
||||
<output>
|
||||
<port id="1">
|
||||
<dim>4</dim>
|
||||
<dim>600000</dim>
|
||||
<dim>-1</dim>
|
||||
</port>
|
||||
</output>
|
||||
</layer>
|
||||
|
110
docs/ops/movement/Unique_10.md
Normal file
110
docs/ops/movement/Unique_10.md
Normal file
@ -0,0 +1,110 @@
|
||||
# Unique {#openvino_docs_ops_movement_Unique_10}
|
||||
|
||||
**Versioned name**: *Unique-10*
|
||||
|
||||
**Category**: *Data movement*
|
||||
|
||||
**Short description**: *Unique* finds unique elements of a given input tensor. Depending on the operator's attributes it either looks for unique values globally in the whole (flattened) tensor or performs the search along the specified axis.
|
||||
|
||||
**Detailed description**
|
||||
The operator can either work in elementwise mode searching for unique values in the whole tensor or it can consider slices of the input tensor along the specified axis. This way the op is able to find unique subtensors in the input data. Except for the unique elements the operator also produces the indices of the unique elements in the input tensor and the number of occurrences of unique elements in the input data.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
* *sorted*
|
||||
|
||||
* **Description**: controls whether the unique elements in the output tensor are sorted in ascending order.
|
||||
* **Range of values**:
|
||||
* false - output tensor's elements are not sorted
|
||||
* true - output tensor's elements are sorted
|
||||
* **Type**: boolean
|
||||
* **Default value**: true
|
||||
* **Required**: *no*
|
||||
|
||||
* *index_element_type*
|
||||
|
||||
* **Description**: controls the data type of the output tensors containing indices.
|
||||
* **Range of values**: "i64" or "i32"
|
||||
* **Type**: string
|
||||
* **Default value**: "i64"
|
||||
* **Required**: *no*
|
||||
|
||||
**Inputs**
|
||||
|
||||
* **1**: A tensor of type *T* and arbitrary shape. **Required.**
|
||||
* **2**: A tensor of type *T_AXIS*. The allowed tensor shape is 1D with a single element or a scalar. **Optional**
|
||||
When provided this input is used to "divide" the input tensor into slices along the specified axis before unique elements processing starts. When this input is not provided the operator works on a flattened version of the input tensor (elementwise processing).
|
||||
|
||||
**Outputs**
|
||||
|
||||
* **1**: The output tensor containing unique elements (individual values or subtensors). This tensor's type matches the type of the first input tensor: *T*. The values in this tensor are either sorted ascendingly or maintain the same order as in the input tensor. The shape of this output depends on the values of the input tensor and will very often be dynamic. Please refer to the article describing how [Dynamic Shapes](https://docs.openvino.ai/latest/openvino_docs_OV_UG_DynamicShapes.html) are handled in OpenVINO.
|
||||
* **2**: The output tensor containing indices of the locations of unique elements. The indices map the elements in the first output tensor to their locations in the input tensor. The index always points to the first occurrence of a given unique output element in the input tensor. This is a 1D tensor with type controlled by the `index_element_type` attribute.
|
||||
* **3**: The output tensor containing indices of the locations of elements of the input tensor in the first output tensor. This means that for each element of the input tensor this output will point to the unique value in the first output tensor of this operator. This is a 1D tensor with type controlled by the `index_element_type` attribute.
|
||||
* **4**: The output tensor containing the number of occurrences of each unique value produced by this operator in the first output tensor. This is a 1D tensor with type `int64`.
|
||||
|
||||
**Types**
|
||||
|
||||
* *T*: any supported data type.
|
||||
* *T_AXIS*: `int64` or `int32`.
|
||||
|
||||
**Examples**
|
||||
|
||||
*Example 1: axis input connected to a constant containing a 'zero'*
|
||||
|
||||
```xml
|
||||
<layer ... type="Unique" ... >
|
||||
<data sorted="false" index_element_type="i32"/>
|
||||
<input>
|
||||
<port id="0" precision="FP32">
|
||||
<dim>3</dim>
|
||||
<dim>3</dim>
|
||||
</port>
|
||||
</input>
|
||||
<input>
|
||||
<port id="1" precision="I64">
|
||||
<dim>1</dim>
|
||||
</port>
|
||||
</input>
|
||||
<output>
|
||||
<port id="2" precision="FP32">
|
||||
<dim>3</dim>
|
||||
<dim>-1</dim>
|
||||
</port>
|
||||
<port id="3" precision="I32">
|
||||
<dim>-1</dim>
|
||||
</port>
|
||||
<port id="4" precision="I32">
|
||||
<dim>-1</dim>
|
||||
</port>
|
||||
<port id="5" precision="I64">
|
||||
<dim>-1</dim>
|
||||
</port>
|
||||
</output>
|
||||
</layer>
|
||||
```
|
||||
|
||||
*Example 2: no axis provided*
|
||||
```xml
|
||||
<layer ... type="Unique" ... >
|
||||
<input>
|
||||
<port id="0" precision="FP32">
|
||||
<dim>3</dim>
|
||||
<dim>3</dim>
|
||||
</port>
|
||||
</input>
|
||||
<output>
|
||||
<port id="1" precision="FP32">
|
||||
<dim>-1</dim>
|
||||
</port>
|
||||
<port id="2" precision="I32">
|
||||
<dim>-1</dim>
|
||||
</port>
|
||||
<port id="3" precision="I32">
|
||||
<dim>-1</dim>
|
||||
</port>
|
||||
<port id="4" precision="I64">
|
||||
<dim>-1</dim>
|
||||
</port>
|
||||
</output>
|
||||
</layer>
|
||||
```
|
@ -6,6 +6,7 @@
|
||||
:maxdepth: 1
|
||||
:hidden:
|
||||
|
||||
openvino_docs_ops_opset10
|
||||
openvino_docs_ops_opset9
|
||||
openvino_docs_ops_opset8
|
||||
openvino_docs_ops_opset7
|
||||
@ -24,6 +25,7 @@ This topic provides a complete list of available sets of operations supported in
|
||||
|
||||
| OpenVINO™ Version | Actual Operations Set |
|
||||
| :---------------- | :------------------------------- |
|
||||
| 2022.3 | [opset10](opset10.md) |
|
||||
| 2022.2 | [opset9](opset9.md) |
|
||||
| 2022.1 | [opset8](opset8.md) |
|
||||
| 2021.4 | [opset7](opset7.md) |
|
||||
|
185
docs/ops/opset10.md
Normal file
185
docs/ops/opset10.md
Normal file
@ -0,0 +1,185 @@
|
||||
# opset10 {#openvino_docs_ops_opset10}
|
||||
|
||||
This specification document describes the `opset10` operation set supported in OpenVINO™.
|
||||
Support for each particular operation from the list below depends on the capabilities of an inference plugin
|
||||
and may vary among different hardware platforms and devices. Examples of operation instances are provided as IR V10 xml
|
||||
snippets. Such IR is generated by the Model Optimizer. The semantics match corresponding nGraph operation classes
|
||||
declared in `namespace opset10`.
|
||||
|
||||
|
||||
## Table of Contents <a name="toc"></a>
|
||||
|
||||
* [Abs](arithmetic/Abs_1.md)
|
||||
* [Acos](arithmetic/Acos_1.md)
|
||||
* [Acosh](arithmetic/Acosh_3.md)
|
||||
* [AdaptiveAvgPool](pooling/AdaptiveAvgPool_8.md)
|
||||
* [AdaptiveMaxPool](pooling/AdaptiveMaxPool_8.md)
|
||||
* [Add](arithmetic/Add_1.md)
|
||||
* [Asin](arithmetic/Asin_1.md)
|
||||
* [Asinh](arithmetic/Asinh_3.md)
|
||||
* [Assign](infrastructure/Assign_3.md)
|
||||
* [Atan](arithmetic/Atan_1.md)
|
||||
* [Atanh](arithmetic/Atanh_3.md)
|
||||
* [AvgPool](pooling/AvgPool_1.md)
|
||||
* [BatchNormInference](normalization/BatchNormInference_5.md)
|
||||
* [BatchToSpace](movement/BatchToSpace_2.md)
|
||||
* [BinaryConvolution](convolution/BinaryConvolution_1.md)
|
||||
* [Broadcast](movement/Broadcast_3.md)
|
||||
* [Bucketize](condition/Bucketize_3.md)
|
||||
* [CTCGreedyDecoder](sequence/CTCGreedyDecoder_1.md)
|
||||
* [CTCGreedyDecoderSeqLen](sequence/CTCGreedyDecoderSeqLen_6.md)
|
||||
* [CTCLoss](sequence/CTCLoss_4.md)
|
||||
* [Ceiling](arithmetic/Ceiling_1.md)
|
||||
* [Clamp](activation/Clamp_1.md)
|
||||
* [Concat](movement/Concat_1.md)
|
||||
* [Constant](infrastructure/Constant_1.md)
|
||||
* [Convert](type/Convert_1.md)
|
||||
* [ConvertLike](type/ConvertLike_1.md)
|
||||
* [Convolution](convolution/Convolution_1.md)
|
||||
* [ConvolutionBackpropData](convolution/ConvolutionBackpropData_1.md)
|
||||
* [Cos](arithmetic/Cos_1.md)
|
||||
* [Cosh](arithmetic/Cosh_1.md)
|
||||
* [CumSum](arithmetic/CumSum_3.md)
|
||||
* [DeformableConvolution](convolution/DeformableConvolution_8.md)
|
||||
* [DeformablePSROIPooling](detection/DeformablePSROIPooling_1.md)
|
||||
* [DepthToSpace](movement/DepthToSpace_1.md)
|
||||
* [DetectionOutput](detection/DetectionOutput_8.md)
|
||||
* [DFT](signals/DFT_7.md)
|
||||
* [Divide](arithmetic/Divide_1.md)
|
||||
* [Einsum](matrix/Einsum_7.md)
|
||||
* [Elu](activation/Elu_1.md)
|
||||
* [EmbeddingBagOffsetsSum](sparse/EmbeddingBagOffsetsSum_3.md)
|
||||
* [EmbeddingBagPackedSum](sparse/EmbeddingBagPackedSum_3.md)
|
||||
* [EmbeddingSegmentsSum](sparse/EmbeddingSegmentsSum_3.md)
|
||||
* [Equal](comparison/Equal_1.md)
|
||||
* [Erf](arithmetic/Erf_1.md)
|
||||
* [Exp](activation/Exp_1.md)
|
||||
* [ExperimentalDetectronDetectionOutput_6](detection/ExperimentalDetectronDetectionOutput_6.md)
|
||||
* [ExperimentalDetectronGenerateProposalsSingleImage_6](detection/ExperimentalDetectronGenerateProposalsSingleImage_6.md)
|
||||
* [ExperimentalDetectronPriorGridGenerator_6](detection/ExperimentalDetectronPriorGridGenerator_6.md)
|
||||
* [ExperimentalDetectronROIFeatureExtractor_6](detection/ExperimentalDetectronROIFeatureExtractor_6.md)
|
||||
* [ExperimentalDetectronTopKROIs_6](sort/ExperimentalDetectronTopKROIs_6.md)
|
||||
* [ExtractImagePatches](movement/ExtractImagePatches_3.md)
|
||||
* [Eye](generation/Eye_9.md)
|
||||
* [FakeQuantize](quantization/FakeQuantize_1.md)
|
||||
* [Floor](arithmetic/Floor_1.md)
|
||||
* [FloorMod](arithmetic/FloorMod_1.md)
|
||||
* [Gather](movement/Gather_8.md)
|
||||
* [GatherElements](movement/GatherElements_6.md)
|
||||
* [GatherND](movement/GatherND_8.md)
|
||||
* [GatherTree](movement/GatherTree_1.md)
|
||||
* [Gelu](activation/GELU_7.md)
|
||||
* [GenerateProposals](detection/GenerateProposals_9.md)
|
||||
* [Greater](comparison/Greater_1.md)
|
||||
* [GreaterEqual](comparison/GreaterEqual_1.md)
|
||||
* [GridSample](image/GridSample_9.md)
|
||||
* [GRN](normalization/GRN_1.md)
|
||||
* [GroupConvolution](convolution/GroupConvolution_1.md)
|
||||
* [GroupConvolutionBackpropData](convolution/GroupConvolutionBackpropData_1.md)
|
||||
* [GRUCell](sequence/GRUCell_3.md)
|
||||
* [GRUSequence](sequence/GRUSequence_5.md)
|
||||
* [HardSigmoid](activation/HardSigmoid_1.md)
|
||||
* [HSigmoid](activation/HSigmoid_5.md)
|
||||
* [HSwish](activation/HSwish_4.md)
|
||||
* [IDFT](signals/IDFT_7.md)
|
||||
* [I420toBGR](image/I420toBGR_8.md)
|
||||
* [I420toRGB](image/I420toRGB_8.md)
|
||||
* [If](condition/If_8.md)
|
||||
* [Interpolate](image/Interpolate_4.md)
|
||||
* [IRDFT](signals/IRDFT_9.md)
|
||||
* [Less](comparison/Less_1.md)
|
||||
* [LessEqual](comparison/LessEqual_1.md)
|
||||
* [Log](arithmetic/Log_1.md)
|
||||
* [LogicalAnd](logical/LogicalAnd_1.md)
|
||||
* [LogicalNot](logical/LogicalNot_1.md)
|
||||
* [LogicalOr](logical/LogicalOr_1.md)
|
||||
* [LogicalXor](logical/LogicalXor_1.md)
|
||||
* [LogSoftmax](activation/LogSoftmax_5.md)
|
||||
* [Loop](infrastructure/Loop_5.md)
|
||||
* [LRN](normalization/LRN_1.md)
|
||||
* [LSTMCell](sequence/LSTMCell_1.md)
|
||||
* [LSTMSequence](sequence/LSTMSequence_1.md)
|
||||
* [MatMul](matrix/MatMul_1.md)
|
||||
* [MatrixNMS](sort/MatrixNMS_8.md)
|
||||
* [MaxPool](pooling/MaxPool_8.md)
|
||||
* [Maximum](arithmetic/Maximum_1.md)
|
||||
* [Minimum](arithmetic/Minimum_1.md)
|
||||
* [Mish](activation/Mish_4.md)
|
||||
* [Mod](arithmetic/Mod_1.md)
|
||||
* [MVN](normalization/MVN_6.md)
|
||||
* [MulticlassNMS](sort/MulticlassNonMaxSuppression_9.md)
|
||||
* [Multiply](arithmetic/Multiply_1.md)
|
||||
* [Negative](arithmetic/Negative_1.md)
|
||||
* [NonMaxSuppression](sort/NonMaxSuppression_5.md)
|
||||
* [NonZero](condition/NonZero_3.md)
|
||||
* [NormalizeL2](normalization/NormalizeL2_1.md)
|
||||
* [NotEqual](comparison/NotEqual_1.md)
|
||||
* [NV12toBGR](image/NV12toBGR_8.md)
|
||||
* [NV12toRGB](image/NV12toRGB_8.md)
|
||||
* [OneHot](sequence/OneHot_1.md)
|
||||
* [Pad](movement/Pad_1.md)
|
||||
* [Parameter](infrastructure/Parameter_1.md)
|
||||
* [Power](arithmetic/Power_1.md)
|
||||
* [PReLU](activation/PReLU_1.md)
|
||||
* [PriorBoxClustered](detection/PriorBoxClustered_1.md)
|
||||
* [PriorBox](detection/PriorBox_8.md)
|
||||
* [Proposal](detection/Proposal_4.md)
|
||||
* [PSROIPooling](detection/PSROIPooling_1.md)
|
||||
* [RandomUniform](generation/RandomUniform_8.md)
|
||||
* [Range](generation/Range_4.md)
|
||||
* [RDFT](signals/RDFT_9.md)
|
||||
* [ReLU](activation/ReLU_1.md)
|
||||
* [ReadValue](infrastructure/ReadValue_3.md)
|
||||
* [ReduceL1](reduction/ReduceL1_4.md)
|
||||
* [ReduceL2](reduction/ReduceL2_4.md)
|
||||
* [ReduceLogicalAnd](reduction/ReduceLogicalAnd_1.md)
|
||||
* [ReduceLogicalOr](reduction/ReduceLogicalOr_1.md)
|
||||
* [ReduceMax](reduction/ReduceMax_1.md)
|
||||
* [ReduceMean](reduction/ReduceMean_1.md)
|
||||
* [ReduceMin](reduction/ReduceMin_1.md)
|
||||
* [ReduceProd](reduction/ReduceProd_1.md)
|
||||
* [ReduceSum](reduction/ReduceSum_1.md)
|
||||
* [RegionYolo](detection/RegionYolo_1.md)
|
||||
* [ReorgYolo](detection/ReorgYolo_1.md)
|
||||
* [Reshape](shape/Reshape_1.md)
|
||||
* [Result](infrastructure/Result_1.md)
|
||||
* [ReverseSequence](movement/ReverseSequence_1.md)
|
||||
* [RNNCell](sequence/RNNCell_3.md)
|
||||
* [RNNSequence](sequence/RNNSequence_5.md)
|
||||
* [ROIAlign](detection/ROIAlign_9.md)
|
||||
* [ROIPooling](detection/ROIPooling_1.md)
|
||||
* [Roll](movement/Roll_7.md)
|
||||
* [Round](arithmetic/Round_5.md)
|
||||
* [ScatterElementsUpdate](movement/ScatterElementsUpdate_3.md)
|
||||
* [ScatterNDUpdate](movement/ScatterNDUpdate_3.md)
|
||||
* [ScatterUpdate](movement/ScatterUpdate_3.md)
|
||||
* [Select](condition/Select_1.md)
|
||||
* [Selu](activation/Selu_1.md)
|
||||
* [ShapeOf](shape/ShapeOf_3.md)
|
||||
* [ShuffleChannels](movement/ShuffleChannels_1.md)
|
||||
* [Sigmoid](activation/Sigmoid_1.md)
|
||||
* [Sign](arithmetic/Sign_1.md)
|
||||
* [Sin](arithmetic/Sin_1.md)
|
||||
* [Sinh](arithmetic/Sinh_1.md)
|
||||
* [Slice](movement/Slice_8.md)
|
||||
* [SoftMax](activation/SoftMax_8.md)
|
||||
* [SoftPlus](activation/SoftPlus_4.md)
|
||||
* [SoftSign](activation/SoftSign_9.md)
|
||||
* [SpaceToBatch](movement/SpaceToBatch_2.md)
|
||||
* [SpaceToDepth](movement/SpaceToDepth_1.md)
|
||||
* [Split](movement/Split_1.md)
|
||||
* [Sqrt](arithmetic/Sqrt_1.md)
|
||||
* [SquaredDifference](arithmetic/SquaredDifference_1.md)
|
||||
* [Squeeze](shape/Squeeze_1.md)
|
||||
* [StridedSlice](movement/StridedSlice_1.md)
|
||||
* [Subtract](arithmetic/Subtract_1.md)
|
||||
* [Swish](activation/Swish_4.md)
|
||||
* [Tan](arithmetic/Tan_1.md)
|
||||
* [Tanh](arithmetic/Tanh_1.md)
|
||||
* [TensorIterator](infrastructure/TensorIterator_1.md)
|
||||
* [Tile](movement/Tile_1.md)
|
||||
* [TopK](sort/TopK_3.md)
|
||||
* [Transpose](movement/Transpose_1.md)
|
||||
* [Unique](movement/Unique_10.md)
|
||||
* [Unsqueeze](shape/Unsqueeze_1.md)
|
||||
* [VariadicSplit](movement/VariadicSplit_1.md)
|
Loading…
Reference in New Issue
Block a user