* 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
* 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
* 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
* 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
* turned on MarkingSubgraphsWithCorrectLayout for TF NCHW
* restricted MarkSubgraphsWithCorrectLayout.py only to TF
* added comments why need to MarkSubgraphsWithCorrectLayout even for TF NCHW models
* 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
* 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
* 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>
* [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
* 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
* Add json validate
* Fix json schema
* Fix schema loader
* Add unit test
* Update bom file
* Update all requarments
* Update dev requarments
* Update requrments
* Update path to schema
* Update schema
* Add some unit tests
* Move schema to root dir
* Update schema path in bom file
* Fix unit test
* Fix bom
* Change path to schema
* update setup
* Fix setup
* Fix mo args test
* Refactoring some code
* Refactoring according to review
* Update sort imports
* Remove id attribute from schema
* Refactoring validator
* Fix according to review
* Move schema from json to dict. Update unit tests.
* Fix BOM file
* Update bom file
* Implement way to provide keep_output_port attribute to add_opoutput function
* Update tests
* Update comment
* Fake commit to pictures merge problem
* Change default value
* Add type
* Revert "Fake commit to pictures merge problem"
This reverts commit 41850765e0.
* Updated conversion of TF OD API 2.4 SSD models
* Fixed issue when more Conv2D nodes were selected for weights permutation when converting TF OD API models
* Code style fixes
* Fixed code comments
* add priors to loader and counts transformation
* fixes in select insertion for case with context gathering - LSTM - context gathering
fix for edge parallel to ReadValue
extend counts option to case of priors inside mdl model file
* fixed tests
* fixed typo
* fixed issue with input names
* fix priors loading + comments
* fix e2e test: error with not found transformation
* print debug info for dependency graph - should be reverted
* should be reverted: debug commit
* Revert "fix e2e test: error with not found transformation"
This reverts commit 8320fa99bf.
* revert debug commits
* fixes after review
* review fixes
* review change
* review changes
* [MO] Fix showing graceful error message when no ngraph case
Move frontend-related imports inside appropriate functions
And use try/except if import fails to show graceful error message
* Revert "[MO] Fix showing graceful error message when no ngraph case"
This reverts commit 72d52bd946.
* Print error before running of subprocess if IE or nGraph Python API is not found
* Added pytest to requirements_dev.txt
* Fixed review comment
* [NG Frontend] Introduce classes and macros for Frontend-specific exceptions
* [nGraph Frontend] Python bindings
Exposing Python API for nGraph FrontEndManager introduced in PR #5470
* Exposing 'Dimension' class to Python nGraph API
* Model optimizer code from pdpd_frontend
Removed 'use_legacy_frontend' option as not needed for PDPD integration
* Added XML/BIN prints for 'ngraph-FE' serialization path
* Update python bindings to latest code from PR #5995
* Add OV_FRONTEND_PATH to LD_LIBRARY_PATH by default for Model Optimizer
* Test with 'mock' frontend
* Added meta info to generated IR
Added more tests to cover currently supported scenarios
Clang config for MO mock frontend
* some flake8 and pylint fixes
* Try to 'import' ngraph-related packages on top of python files
This will help to specify type of function arguments, but can break unit tests if they're using functions directly without ngraph
* CI fixes
* Run tests from 'main_test.py' inside ngraph environment
* Fixed review comments
* Fixed comments
Added more tests for checking if inputs and outputs are same
* Renamed front_ng to moc_frontend
* Update package_BOM.txt
* Turn on IE and NG python APIs by default inside Model Optimizer
* Remove fallback
* Fix mo_ut
* Remove MO wheel tests
* Add model_optimizer custom target to gather all MO deps inside single traget
* Fix PR comments
* Added handling of debug information in create_node().
* Code refactoring.
* Checks fixed.
* Added comments, added unit test.
* Renamed unit test class.
* Fixed port number in unit test.