Commit Graph

448 Commits

Author SHA1 Message Date
Anton Chetverikov
a56d81345d [MO] IR Reader meta_info using update (#7133)
* Initial change to allow saving graphto IR without meta_info

* Update saving and restoring functions, add more comments

* Add unit tests for define_data_type() function

* Fix wrong name

* Update condition

* Update meta_data checks

* Update data_type restoretion and missed outpurt ports handling

* Update and add new test

* Update comments

* Remove commented code

* Rename function

* Update temporary Result operations processing

* Remove define_data_type function

* Move node_normalize_output function to Op class methods

* Update comments

* Update comments
2021-10-05 15:07:44 +03:00
Svetlana Dolinina
a1ee7dca49 fix error for model with lstm_nonlin without UseDropout attribute (#7730)
* fix error for model with lstm_nonlin without UseDropout attribute

* remove extra line

* added dropoutmaskcomponent in doc as supported
2021-10-04 15:39:28 +03:00
Alina Kladieva
09d20360a9 Add MO coveragerc to tests install pkg (#7707)
* Add MO coveragerc to tests install pkg

* Use directory install with FILES_MATCHING

* Coveragerc to tools folder

* Update CMakeLists.txt

* Use tests/model_optimizer folder
2021-10-01 13:34:07 +03:00
Yegor Kruglov
f3be68d164 updated extender (#7763) 2021-10-01 13:03:49 +03:00
Michał Karzyński
bd5b1bf99f Change the way Model Optimizer loads frontends (#7330)
* Adds two switches `use_new_frontend` and `use_legacy_frontend` to override defaults.
* Rename ONNX frontend from `onnx_experimental` to `onnx`
2021-09-30 12:17:36 +02:00
Gleb Kazantaev
62ed238f54 RT Info Attributes Serialization/Deserialization (#7603)
* Init rt info deserialization

* Add RT Info attributes deserialization

* Add RT Info attributes serialization

* Add Serialization and Deserialization tests

* Code style

* Fix AttributeAdapter place

* Extended rt_info section; added support for multi-field attrs; use version for attr serialization/deserialization

* Align attributes and their usage

* Fix LPT

* Add missing #pragma one

* Fix build

* Change version delimiter to have valid xml

* Fix PromitivesPriority

* Fix tests

* Fix test

* Fix IR Reader; remove empty rt_info

* More explicit attribute name and version representation
2021-09-29 19:17:03 +03:00
Andrei Kochin
0efc1a0763 Replace 'quantized' with 'compressed' in MO help (#7607)
* Replace 'quantized' with 'compressed' in MO help

Signed-off-by: Andrei Kochin <andrei.kochin@intel.com>

* Add UG changes to reflect new help text

Signed-off-by: Andrei Kochin <andrei.kochin@intel.com>
2021-09-24 13:34:09 +03:00
Svetlana Dolinina
ed96cc7c1a added Kaldi dropoutmask extraction (#7456)
* added Kaldi dropoutmask extraction and Kaldi lstmNonlinearity replacer extended for dropout case

(cherry picked from commit 0dd05f8053)

* fixed frame time calculation for Kaldi models with shapeof branches

* fix bug in frame time calculation for Kaldi models with shapeOf paths

* remove incorrect attribute from transformation

* refactoring based on review, couple more checks

* minor review fixes
2021-09-24 00:03:47 +03:00
Ruslan Nugmanov
5ad2400468 takeaway parsing arguments in separate func (#7266) 2021-09-21 14:45:05 +03:00
Gleb Kazantaev
07d9b51121 Replace IR Reader With IR Frontend (#7249)
* Replace IR Reader With IR Frontend
2021-09-20 23:17:22 +03:00
Roman Donchenko
8598ce89a3 Add missing spaces between words in string literals (#7540)
And in one case, a missing period.
2021-09-20 15:38:49 +03:00
Anton Chetverikov
9cfdad9afc Change sort functions to fix incorrect order in port dictionaries (#7283)
* Change sort functions to fix incorrect order

* Add separate sorts for different cases

* Update sort function to correct control flow edges handling

* Refactor all sorts for dictionary ordering

* Update build_graph function for correct control_flow edges creation

* Add tests for nodes and ports sort equality

* Fix wrong port value

* Add direct conversion from bool to int

* Use .replace instead of .strip

* Add test with both control_flow and ordinary edges, refactored edges lists filling

* Refactored nodes dict filling

* Delete unused test code
2021-09-20 10:17:44 +03:00
Ilya Lavrenov
0df7dab345 New IRC package structure (#6255)
* OV new package structure

* Fixes

* More fixes

* Fixed code style in ngraph tests

* Fixes

* Paths to setupvars inside demo scripts

* Fixed demo_security_barrier_camera.sh

* Added setupvars.sh to old location as well

* Fixed path

* Fixed MO install path in .co

* Fixed install of public headers

* Fixed frontends installation

* Updated DM config files

* Keep opencv in the root

* Improvements

* Fixes for demo scripts

* Added path to TBB

* Fix for MO unit-tests

* Fixed tests on Windows

* Reverted arch

* Removed arch

* Reverted arch back: second attemp

* System type

* Fix for Windows

* Resolve merge conflicts

* Fixed path

* Path for Windows

* Added debug for Windows

* Added requirements_dev.txt to install

* Fixed wheel's setup.py

* Fixed lin build

* Fixes after merge

* Fix 2

* Fixes

* Frontends path

* Fixed deployment manager

* Fixed Windows

* Added cldnn unit tests installation

* Install samples

* Fix samples

* Fix path for samples

* Proper path

* Try to fix MO hardcodes

* samples binary location

* MO print

* Added install for libopencv_c_wrapper.so

* Added library destination

* Fixed install rule for samples

* Updated demo scripts readme.md

* Samples

* Keep source permissions for Python samples

* Fixed python

* Updated path to fast run scripts

* Fixed C samples tests

* Removed debug output

* Small fixes

* Try to unify prefix
2021-09-15 16:49:11 +03:00
Anastasia Popova
cf48792134 Random Uniform MO implementation (#6694)
* Added RandomUniform operation.

* Conflicts fix.

* Fix conflicts.

* Fix conflicts.

* Added ONNX extractor, fixed FP16 conversion, added double implementation.

* int32, int64 types.

* Added initial type attribute.

* Added extractors for MxNet and TF for RandomUniformInt.

* Fixed ChangeRandomUniformOutputType transformation.

* Corrected ONNX, MxNetextractors.

* Fixed extender.

* Code style corrected, updated BOM file.

* Small correction.

* Code reformat.

* Fixed type check.

* Small corrections, code style.

* Added RandomUniform tests to manifest file.

* Include fixed.

* Code style.

* Small corrections.

* Tests fixed.

* Manifest file updated.

* Removed initial type attribute.

* Small correction.

* Fixed problem with Const types change.

* Update ngraph/core/include/ngraph/op/random_uniform.hpp

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>

* Update ngraph/core/src/op/random_uniform.cpp

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>

* Update ngraph/core/src/op/random_uniform.cpp

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>

* Applied comments to shell implementation.

* Applied comments to shell implementation.

* Moved shell and reference to separate PR.

* Moved shell and reference to separate PR.

* Corrected comments, code refactoring.

* Fixed seed attributes.

* Corrected mxnet extractor.

* Returned RandomUniform onnx extractor.

* Small fix.

* Used generator in tests, fixed input ports count in AttributedRandomUniform.

* Temporarily added DropoutWithRandomUniformReplacer and debug output.

* Temporarily added DropoutWithRandomUniformReplacer and debug output.

* Temporarily added DropoutWithRandomUniformReplacer and debug output.

* Temporarily added DropoutWithRandomUniformReplacer and debug output.

* Moved DropoutWithRandomUniformReplacer to ngraph, removed debug output.

* Fixed wrong change.

* Fixed wrong change.

* Added check that RandomUniform is in ShapeOf subgraph.

* Added layer tests, updated supported operations list.

* Small correction.

* Fix conflicts.

* Fix conflicts.

* Small fix.

* Used const for not changing values.

* Apply suggestions from code review

Co-authored-by: Gleb Kazantaev <gleb.nnstu@gmail.com>

* Added IR check in layer tests.

* Fixed error.

* Fixed test.

* Update inference-engine/src/transformations/include/transformations/common_optimizations/dropout_with_random_uniform_replacer.hpp

Co-authored-by: Gleb Kazantaev <gleb.nnstu@gmail.com>

* Removed ShapeOf and Mul from DropoutWithRandomUniformReplacer.

* Replaced register_new_node with make_shared.

* Added fp16 test.

* Extended for RandomUniform->Convert case.

* Used modf().

* Removed modf().

* Update inference-engine/src/transformations/src/transformations/common_optimizations/dropout_with_random_uniform_replacer.cpp

Co-authored-by: Gleb Kazantaev <gleb.nnstu@gmail.com>

* Added negative tests, added nullptr check for add_const_value.

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>
Co-authored-by: Gleb Kazantaev <gleb.nnstu@gmail.com>
2021-09-14 21:26:57 +03:00
Alina Kladieva
fda3f5d237 [requirements] Set TF to 2.5.0 (#6620)
* [requirements] Set TF to 2.5.0

* [ngraph|paddlepaddle|requirements] Gast to 0.4.0

(required for TensorFlow 2.5)

* [ stress_tests/scripts/requirements] Upd versions

* [time_tests/test_runner/requirements] Upd versions

* [ngraph|paddle|requirements] Paddle strict major

* Gast version to 0.3.3

* Update requirements_dev.txt
2021-09-14 18:05:18 +03:00
Yegor Kruglov
9d53b3536d [MO] Updating MO to detect TF 2.X OD API models (#6983)
* updated FasterRCNN and SSD analysis patterns

* updated tf od api conditions

* updated ssd patterns

* added more ssd topologies

* move preprocessor to tf od api condition

* update TF OD API conditions

* refactoring

* specify data type
2021-09-10 17:44:42 +03:00
Ilya Lavrenov
a952540edf Openvino cmake config (#7419)
* Added OpenVINOConfig.cmake

* OpenVINOConfig.cmake part 2

* Trying to fix cmake generation

* Fixes

* Export frontends as well

* Fixed condition

* Added OpenVINO cmake package usage: docs, C samples

* Use more OpenVINO config

* Install OpenVINOConfig.cmake

* Trying to fix private plugins

* Trying to fix .tox

* Trying to fix ARM

* Fixed samples build

* Explicit ngraph duplicated targets

* Fixed fuzzing tests build

* Added IR frontend installation

* Removed install directory for IE reader

* Removed IR frontend from export list

* Reverted ngraph_DIR

* Try to fix .tox

* Fixed ieFuncTests with ONNX extensions

* Attempt #2

* Trying to fix ngraph setup.py

* Fix

* Trying to fix ONNX ngraph .tox CI

* Trying to remove spaces

* Fixed ngraph_DIR -> OpenVINO_DIR

* Removed junk files

* Try to fix ngraph wheel

* Try to fix ie_wheel

* Try to fix ngraph wheel
2021-09-10 15:31:27 +03:00
Pavel Esir
f68a116af1 [MO] add uint32/uint8 into list of supported data types (#7424) 2021-09-09 16:40:31 +03:00
Evgenya Stepyreva
aa106ad270 Unused transformations deleted (#7428) 2021-09-09 10:07:59 +03:00
iliya mironov
60714ce40a Fix return values for lift_up_through func (#7323)
* Fix return valuese for lift_up_through func

* Update unit test

* Refactoring code according to code review

* Fix revers outputs

* Fix unit test

* Fix comment

* Add multioutput support

* Add unit test for cace with several output from ReverseChannel op

* Fix distinantion connect
2021-09-08 14:48:59 +03:00
Mateusz Tabaka
990b7e67da [MO] MulFakeQuantizeFuse - don't fuse if mul constant has zero or negative values (#7347) 2021-09-08 13:26:49 +03:00
Evgeny Lazarev
4547818fb1 Move TF OD API docs to code + several fixes for TF OD API models conversion (#7377)
* Refactored code, updated comments and documentation related to TF OD API models pre-processing.

* Improved MO messages related to pre-processor block removal during conversion of the TD OD API models. Remove mean/scale if padding is used and mean/scale is applied before resize

* Updated TF OD API transformation and documentation for SSD models

* Updated comments and documentation for the ObjectDetectionAPIMaskRCNNSigmoidReplacement transformation

* Updated comments and documentation for the ObjectDetectionAPIMaskRCNNROIPoolingSecondReplacement transformation

* Updated comments and documentation for the ObjectDetectionAPIPSROIPoolingReplacement transformation

* Updated comments and documentation for the ObjectDetectionAPIProposalReplacement transformation

* Updated comments and documentation for the ObjectDetectionAPIDetectionOutputReplacement transformation

* Minor code style fixes

* Fixed unit tests for ObjectDetectionAPIPreprocessor2Replacement transformation

* Improved unit test for pipeline.config parser. Fixed very long bug with incorrect test data for the PipelineConfig parser class

* Code style fixes

* Get rid of "coordinates_swap_method" parameter in the JSON configuration file for TF OD API models

* Code style fixes and minor refactoring

* Simplied code related to swapping Proposal coordinates

* Removed incorrectly removed code

* Fixed code review comments about the code comments
2021-09-08 10:03:01 +03:00
Roman Kazantsev
27a287b9a7 Extend coverage versions in requirements_dev.txt (#7404)
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
2021-09-07 14:32:48 +03:00
Evgeny Lazarev
3775dad345 MO dynamic shapes support (#5918)
* Allow MO to generate IR with -1 in dimensions

* Some fixes to support -1 for StridedSlice operation

* Updated TensorArrayGatherV3 shape infer to support dynamic output shape

* Several fixes to support undefined dimensions in the Broadcast,Reshape,Slice and Tile

* Fixed bug in the normalization transformation of TF NMS to opset NMS

* Updated shape infer functions related to StridedSlice and NMS

* Updated Select shape inference function to use common shape broadcasting function supporting dynamism

* Fixed operation TFResize shape infer function to work correctly for case when model is converted with --disable_nhwc_to_nchw

* Dynamic Range and update asserts in NMS

* Changed the way how dynamic dimensions are specified. Refactored shape inference functions and common places to use new approach

* More fixes to support dynamic shapes

* More fixes for support of dynamic shapes

* Fixed generation of IR with dynamic dimensions

* Allow reading IRs with undefined dimensions

* More changes in the IE to support dynamic dimensions

* Fixes for Switch, Merge, Concat shape and value infer related to dynamism

* Fixed TensorArray related ops to properly handle dynamic dimensions. Fixed StridedSlice infer for case with new_axis

* Fixed shape_for_layout function to generate masked array

* Fixed shape inference for Convolution and Poolings to support dynamic spatial dimensions

* Updated shape infer functions for CTCGreedyDecotder, CTCLoss and Enter

* Fixed shape inference with dynamic dimensions for MatMul, Split, Upsample, SpaceToBatch, some fixes for the TI

* Fixes for undefined dimensions support for Proposal and DetectionOutput

* Fixed ExtractImagePatches, DepthToSpace and RegionYolo shape infer functions to work with partially dynamic dimensions

* Changes in tf_window_op_pad_infer to better work with dynamic dimensions

* Fixed output shape calculation for StridedSlice operation

* More StridedSlice fixes

* Fixed resolve_convolution_with_group

* Fixed unit tests

* Fixed unit tests

* Fixed Switch op unit tests

* Fixed shape inference for Upsample operation

* Updated unit tests for the Concat operation

* Fixed eltwise shape infer unit tests

* Fixed shape infer tests for Convolution and DetectionOutput ops

* Fixed Crop shape infer function tests

* Fixed Slice op unit test and minor fix in the shape inference. Fixed emitter

* Updated unit test for telemetry and match_shape function for dynamism

* Fixed unit test for the DetectionOutput

* Added support for the TF ClipByValue operation

* Fixed GatherND shape inference for dynamic shapes support

* Dynamic shapes support for the MO IR Reader

* Fixed BlockLSTM operation to not work as an extractor

* Allow to serialize IRs with partially defined shapes

* Updated SelectBroadcast transformation to not check shape values

* Fixed MO IR comparator

* Fixed SS value propagation when slices are dynamic

* Do not re-run graph clean-up for ProposalMutation

* Fixed InterpolateSequenceToInterpolate transformation to support dynamic dimensions

* Fixed Loop iteration count calculation and reading IteratorGetNext shapes

* Fixed unit test for serialization

* Fixed serialization test

* Fixed RandomUniform shape infer

* Fixed several transformations related to RNN to respect dynamic output shapes

* Fixed Deconvolutin shape calculation for dynamic batch. Eltwise shape infer improvements

* Fixed shape infer functions for ExperimentalDetectron ops, reverted changes for NonZero and removed debug prints

* Fixed check for dynamism of a list, fixed value propagation for Concat op and remove redundant shape infer for reshape

* Update Eltwise value propagation to use np.ma

* Fixed ExpandDims shape infer function

* Shape infer functions fixes and improvements

* Remove Accum op from the MO

* Updated activation functions shape infer

* Removed unsupported operation Correlation

* Fixed shape infers for several functions

* Removed unsupported DataAugmentation operation

* Fixed shape infer functions for several ops in extensions directory

* Removed not-support operation PowerFile

* Removed unsupported SpatialTransformer,SimplerNMS and PredictionHeatmap operations

* More shape infer functions updates

* Merge shape infer fix

* Fixed typo

* Fixed TensorArraySize shape infer function

* Fixed VariadicSplit and Squeeze shape infer

* Fixed ONNX models Parameter extractor

* Updated Select value propagation for the dynamic case

* Fixed ReorgYolo shape infer and test

* Removed unnecessary tests

* Fixed Tile shape infer

* Fixed SparseFillEmptryRows unit tests

* Fixed package bom

* Added extractor for the TF operation Mod

* Fixed value propagation for MatMul operation

* Updated Parameter extender to generate shape_array when shape is partially defined only

* Fixed BOM file

* Fixed issue with the TF OD API models and DetectionOutput op. Now the shape infer function for the DO do not re-infer "num_classes" attribute value if it is already known

* Fixed unit test for the DO infer

* Fixed num classes calculation for the DO generation for Faster/Mask-RCNN models

* Changed NMS op to produce static output shape

* Restore dynamic output shape calculation for the NMS for NMS-5

* Fixed CellNormalizer transformation. It should work for static shapes only

* RNNCell Op class fixes

* Revert some changes

* Updated documentation with a list of supported operations

* Revert changes

* Fixes for the ConstantFill op

* Removed redundant SequenceLengthToMask transformation

* TensorArray* ops shape infer code style and refactoring

* Reverse some unnecessary changes in the ConvolutionNormalizer

* Fixes and unit tests for shape_array, compare_shapes, is_fully_defined functions

* Implemented shape_insert, shape_delete functions and tests for them

* Modified code to use shape_delete function

* Added usage of shape_insert function where necessary

* Use shape_insert function in many places

* Some fixes in shape inference for various ops

* Updated shape_delete function to support negative indices

* Changes and unit tests for the MatMul infer function

* Removed strange code from the TF Merge infer function

* Merge op shape infer fixes

* Fixed value propagation in the transformation EltwiseInputReshape.py for the dynamic dimension case

* Code cleanup

* Updated GatherND to support dynamic dimensions

* Minor fixes

* Fixed shape_insert and shape_delete to support np.int64 and np.int32 types

* Updated Upsample operation unit tests with dynamic input shapes

* Minor change in the extensions/back/ConvolutionNormalizer.py to make sure that input dimensions are static

* Fixed ConvertGroupedStridedSlice transformation and added unit tests

* Revert debug changes

* Fixed value propagation for Unsqueeze to work with partially defined input values

* Typo fix

* Added unit tests for the Unsqueeze op shape infer

* broadcasting functions changes and unit tests

* Fixed Tile value inference for partially defined input tensor

* Unit tests for Split and VariadicSplit ops

* Fixes for the Concat infer + unit tests

* Removed redundant tf_pack shape infer

* Fixed Concat value infer and added unit tests

* Fixed StridedSlice shape inference for case with dynamic slices

* Fixes related to StridedSlice shape infer, changes in tests

* Unit tests for the eltwise shape and value infer

* Fixed Pad op value propagation to allow dynamic input values to be propagated

* Unit test for Pooling dynamic input shape infer

* Squeeze op unit tests for dynamic input shape

* Added assert to the Squeeze op shape infer for case when squeeze dimension is dynamic value

* Added message to the MO when input shapes are dynamic

* Convolution dynamic unit test

* Removed redundant transformation GroupedConvWeightsNormalize

* Removed non-ascii character from the message

* Fixed typo in the BOM file

* Code style and comment fixes

* Fixed copy-paste issue in the DO shape infer function

* Fixed setting dynamic shape in the MO command line

* Added function to compare tensor with dynamic values. Fixes in the unit tests and shape infer functions

* Improved Reshape shape infer + added unit tests

* Fixed value propagation for Select op

* Renamed several internal functions, minor code fixes.

* Code style fixes

* Modified condition in the _set_shape method of the Port class to not check shape if the "override_output_shape" attribute is specified

* Fixed constant value propagation for ReduceOps when inputs have dynamic values. Added unit test

* Fixed shape infer for the Loop for dynamic dimensions case

* Fix in the NMS shape infer to avoid ragged numpy array generation. Fixed Scatter shape infer validation

* Improved shapes infer for eltwise ops with respect to dynamic dimensions

* Changed code comments

* Renamed tensor names in the ClipByValueTFTransformation

* Changed np.ma.allequal to strict_compare_tensors in the Merge op infer

* Chanded np.ma.allequal with strict_compare_tensor.

* Fixed Merge op value infer

* Fixed debug code

* Removed commented line

* Updated condition to check for dynamic shapes in the Partial infer to not fail for MxNet models

* Improvements to the get_shape_from_slice and is_dynamic_slice functions

* Reverted change in the `normalize_slices_attr` for ellipsis mask case

* Updated shape conditions in the ScatterNDBase op to support dynamic dimensions

* Crop op file refactoring

* Set "type" attribute to None for SparseFillEmptyRows op which is not from any opset

* Removed unnecessary extractor test

* Restored Crop operation type

* Removed "type" attribute from the Crop operation and updated the MO code to find Crop by "op" attribute

* Fixed If shape infer function to produce dynamic dimensions

* Updated If shape and value infer to properly work when condition is static

* Fixed fusing transformation check to work with dynamic dimensions. Change comparison in the shape_inference function to not use strict shapes comparison

* Optimize imports in the LayerNorm

* ConvertGroupedStridedSlice minor fixes related to dynamism support

* Fixed ConvertGroupedStridedSlice to properly check if the dimension is sliced
2021-09-01 14:35:06 +03:00
Roman Kazantsev
494aaef6ae Suppress obsolete MO parameters (#7276)
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
2021-08-31 15:43:38 +03:00
Mateusz Bencer
0e521a1e22 Use ONNX Frontend instead of ONNX Reader (#7031)
* added get_name

* add support to supported_impl

* remove debug code

* review remarks

* changed name to onnx_experimental

* fixed test

* revert onnx_experimental name

* integrate reader and fe api

* add unit tests

* removed prototxt from model_validator

* reader refactor

* add supress

* Update inference-engine/src/readers/onnx_reader/ie_onnx_reader.cpp

Co-authored-by: Tomasz Dołbniak <tomasz.dolbniak@intel.com>

* fix segfaults

* removed onnx reader

* handle istringstream

* wstring support

* removed saving path

* styles applied

* changed name to onnx experimental

* Apply suggestions from code review

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

* skip onnx_experimental frontend in mo.py

* add support of wstring paths

* fix wstring ctor of InputModelONNX

* added NGRAPH_SUPPRESS

* make one instance of manager

* change onnx_experimental name to onnx

* creation frontend manager refactor

Co-authored-by: Tomasz Dołbniak <tomasz.dolbniak@intel.com>
Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>
2021-08-26 11:50:53 +03:00
Evgeny Lazarev
0587569369 Enable TensorFlow Min operation (#7144)
* Added extractor for the TF operation Min (reduce min)

* Added unit tests for the TF Reduce ops
2021-08-25 09:42:24 +03:00
iliya mironov
80c5f1a325 Add support opset11 for gemm normalizer (#6733)
* Add support opset11 for gemm normolizer

* Add layer test for gemm opset 11

* Fix layer test

* Fix layer test

* Refactoring according to code review

* Fix

* Update biases norm

* Refactoring matmul norm

* Fix accoding to review

* Fix alpha parameter

* Fix variable naming

* Refactoring according to code review
2021-08-24 15:43:19 +03:00
Anton Chetverikov
f8e90f0c56 [MO] Add transformation for single CTCGreedyDecoder operation (#7023)
* Add transformation for single CTCGreedyDecoder operation

* Fix style in op specification

* Update transformation logic

* refactor old tests and add tests for new transformation

* Move tf specific front transformations to tf folder

* Update transformation logic and comments

* Add run_after function and update comments

* Add output_sparse_format attribute to extractor

* Update transformation conditions and tests

* Fix incorrect comment

* Move sparse_to_dense_replacer to front/tf folder to fix problems with class registration

* Update import

* Update output ports handling in transformation

* Update test

* Fix BOM file

* Update pattern for ctcloss transformation

* Fix and refactor tests for ctcloss transform

* Update transformation conditions
2021-08-24 15:42:27 +03:00
Yegor Kruglov
14dcd43c32 [MO] Replacing StridedSlice with Squeeze/Unsqueeze (#6693)
* added reinterp_shape parameter to tf ss extractor

* removed reinterp_shape

* added transformation to replace ss

* updated bom

* fix for e2e tests

* updated a case when shrink_axis_mask and new_axis_mask are both initialized

* unittests

* added comments

* updated graph_condition

* comments resolving

* updated the case, when shrink_axis_mask and new_axis_mask are both initialized

* added layer tests for squeeze/unsqueeze cases

* remove case when shrink and new axis masks are both set
2021-08-24 13:19:40 +03:00
Svetlana Dolinina
70e0b7817f Nested loop (#6710)
* initial changes to support nested loop

* fixed issues

* fixed nested loop extraction

* added comments

* removed unneeded comments

* review fix

* added tests

* turned off loop tests on GPU

* set xfail for TF tests

* removed TF test to move it in another repo

* fix typo in comment

* move duplicated code to separate functions;
added asserts

* add function for onnx constant creation;
add function to create body of loop
add comments to test

* move main change for nested loop to separate function
2021-08-23 23:11:39 +03:00
Pavel Esir
f77d838e6c [MO] turn on MarkSubGraphsWithCorrectLayout for TF NCHW (#7150)
* turned on MarkingSubgraphsWithCorrectLayout for TF NCHW

* restricted MarkSubgraphsWithCorrectLayout.py only to TF

* added comments why need to MarkSubgraphsWithCorrectLayout even for TF NCHW models
2021-08-20 18:47:45 +03:00
Ilya Churaev
334bf9d227 Moved DiscreteTypeInfo to ov namespace (#7127)
* Moved DiscreteTypeInfo to new opset

* Revert old header

* Fixed code style
2021-08-20 06:42:15 +03:00
Eugeny Volosenkov
38022c4cd6 Mo implementation for If with tf extractor (#6662)
* Add tf2.x impl for If

* Fix ir_engine

* Fix opset

* Fix BOM file

* Added new test

* Fix comments

* Add subgraph_utils

* Fix comments

* Fix transform

* code refactoring

* Fix description

* rewrite support for empty tensor in if

* added onnx extractor

* delete onnx_if

* fix bug with fake_outputs

* Fix test

* Fix control_flow and fix commentaries

* create method results_mapping_and_finding_fake_outputs(output_nodes_in_subgraph,
2021-08-19 10:13:21 +03:00
Anton Chetverikov
6369f43c99 Support unregistered operations in MO IR Reader (#6837)
* Add support for unregistred operations in MO IR Reader

* Remove commented lines

* Add shapes equality check

* Update comments

* Update groupconv_to_conv function to support case with multiple destinations

* Add ir_data_attrs attribute to restored layers

* Update copy_shape_infer function to new graph api

* Add attribute IE to unsuppurted operations to save their attributes

* Fix wrong attribute name

* Update commentary

* Partially revert updating to new Graph API to fix regression, add appropriate comments

* Update code comments

* Rename copy_shape_infer function and add more comments
2021-08-18 12:56:13 +03:00
Kate Generalova
56bb84f0b2 fix mo module version check (#7041)
* fix mo module version check

* add one more version check
2021-08-16 21:22:40 +03:00
Pavel Esir
4738bbd757 [MO][nG] add Gather-8 to MO, layer tests, nG python api unit-tests and up/down-grading transformations (#6560)
* gather-8 upgrade/downgrade transforms

* bump to opset8

* add Gather-8 to MO

* fix permutation for Gather

* added TF layer tests, ONNX layer tests for negative indices, and nG python api unit-tests for negative indices

* typo fix, disable downgrading transformation

* disable downgrade in clDNN, line width style fix

* all Gathers are converted to 7th version, transformations will be enabled/disabled while op will be added into plugins

* disabled Gather8LayerTest on GPU

* added common function for Op replacement

* concretized meaning of negative indices, fixed some typos

* applied review comments: left only meaningful layer tests

* removed op replacing functions from common utils

* returned back transformations without subroutines

* corrected style, added comments to common_optimizations.cpp
2021-08-13 11:56:49 +03:00
Mikhail Nosov
c4bd0a45d3 MO: Support of discovering of suitable MOC frontend (#6888)
* MO: Support of discovering of suitable MOC frontend if --framework is not specified

* Ready for review

* Fix: don't use FrontEndManager if framework is not in list of available frontends

* Apply review comments
2021-08-10 09:23:30 +03:00
iliya mironov
eadeae6c47 Fix ChangeOutputTypeAttributes BackReplacementPattern (#6949)
* Hot fix

* Add unit test
2021-08-09 19:22:21 +03:00
Vladimir Gavrilov
838e701e5e ExpandRangeConstant adjustment for bidirectional Broadcast (#6739)
* Fixes in the transformation ExpandRangeConstant.

* Fixed test.

* Now we use use ShapeOf for both inputs of Broadcast.

* Now the transformation ExpandRangeConstant uses two Gather layers.

* Deletec commented code.

* Fixed tests for the transformation ExpandRangeConstant.

* Rewritten the transformation ExpandRangeConstant using Select.
2021-08-09 16:49:07 +03:00
Mateusz Bencer
e4dfff387b Apply moc transformations on FE API path (#6871)
* apply moc transformations

* changed type of net in apply_moc_transformations

* review remarks

* args->argv typo
2021-08-05 18:08:40 +03:00
Pavel Esir
bfca47ad5e [MO] Range output_type correction for FP16 (#6590)
* added ChangeRangeOutputType.py

* applied review comments

* corrected error message - warn user to use FP32

* renamed ChangeCastOutputType.py et ell.

* merged ChangeRangeOutputType.py, ChangeCastOutputType.py into a singe file

* corrections

* typo fix

* applied comments: faster find_and_replace loop, wording correction
2021-08-02 11:41:12 +03:00
Evgeny Lazarev
d28ecc4f2f New approach for Proposal sub-graph conversion for TF OD API models (#5847)
* Draft version of new approach for Proposal sub-graph conversion for TF OD API models

* Added clip_after_nms = True for Proposal sub-graph being replaced with DetectionOutput

* Refactored code to insert DetectionOutput instead of Proposal operation

* Code cleanup

* Added separate function to insert DetectionOutput instead of Proposal operation

* Updated transformation configuration files for the TF OD API models with Proposal transformation

* Code refactoring

* Code refactoring

* Fix for the condition

* Fixed transformation

* Fixed transformation. One more time

* Updated document about conversion of the TF OD API models

* Update code comments
2021-08-01 10:17:22 +03:00
Roman Kazantsev
032cebb9da Implement transformation for TensorFlow 2 Map Function (aka tf.map_fn) (#6836)
* Implement transformation for TensorFlow 2 Map Function primitive

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Add a description for get_external_node_by_internal_id function

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Correct a name for get_external_nodes_by_internal_id function

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Fix a description for get_external_nodes_by_internal_id function

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Add logging and fix indentation

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Use skip_nodes_by_condition to by-pass StopGradient nodes for tf.map_fn

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
2021-07-30 12:10:59 +03:00
Ivan Tikhonov
6673a90659 MO DeformableConv: fix a set of attributes (#6806)
* MO DeformableConv: fix a set of attributes

* codestyle

* resolve review comments

* resolve review comments
2021-07-29 13:49:12 +03:00
Mikhail Nosov
868fad33ab [MO] Add support to moc_frontend of ":" as delimiter for --input and --output (#6543)
* [MO] Add support to moc_frontend of ":" as delimiter for --input

Additions:
Changed default logic for 'Place::get_in(out)put_port' to return nullptr
Changed default logic for 'InputModel::get_place_by_tensor(operation)_name' to return nullptr

* Corrected comments in code

* Missing empty line

* Clang format fixes

* Fix review comments

* Updated test to verify review comments fixes

* Update unit tests after rebase

* Apply review comments
2021-07-29 13:09:51 +03:00
Mikhail Nosov
a95d59014c Rename "pdpd" frontend to "paddle" (#6842)
* Rename "pdpd" frontend to "paddle"
Also renamed mo_pdpd.py+main_pdpd.py to mo_paddle.py+main_paddle.py

Class names were not renamed

* Update package_BOM.txt
2021-07-29 11:43:07 +03:00
iliya mironov
16d0c28314 Add check if fastjsonschema installed (#6775) 2021-07-26 11:39:44 +03:00
Mikhail Nosov
25fc647b2f Azure CI: run MO unit tests after OpenVINO build (#6772) 2021-07-23 17:42:49 +03:00
Roman Kazantsev
12fb83dc1e Correct layout for Einsum inputs and output (#6696)
* Fix recovery of output subscript in Einsum implicit mode

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Fix code style

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Correct layout adjustment for Einsum inputs and output

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Correct a comment in the unit-test

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Setup correct transformation dependencies for LayoutChangeForEinsum

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
2021-07-23 11:01:06 +03:00