* Add support resize with 2 inputs
* Add unit tests
* Hot fix
* Change resize check from port count to connected num port conditions
* Fix conditions
* Refactoring code according to review
* Fix according to review
* Change onnresize11 input condition
* Add axis support
* Update dequant extractor
* Update qdeq ops
* Refactoring quantize
* Update dequantize resolver
* Update dequantize op
* Refactoring dequantize
* Some fixes for quantize and dequantize
* Update unit tests
* Reafctoring quantize/dequantize axis support
* Move quantize/dequantize resolvers to middle
* hot fix
* Fix unit tests
* Fix unit tests
* Update quintize resolver comment
* Refactoring code according to code review
* Fix according to review
* Change order for transforms quantize pipline
* Written MO classes for DFT and IDFT operations.
* Added class to read TF (I)FFT operations.
* Written extractors for TF operations FFT, FFT2D, FFT3D, IFFT, IFFT2D, IFFT3D.
* Written MO Roll operation and TF Roll operation extractor.
* Started to write needed transformations.
* Written transformation StridedSlices + Complex + Roll + (i)FFTxD + Roll + (Imag, Real) + Pack -> Roll + (I)DFT + Roll.
* Written transformation for Complex + ComplexAbs.
* Written correction of axes of Roll.
* Small fix.
* Small fix.
* Some fixes.
* Some changes.
* Now TF Roll is read as TFRoll. Written inserting Transposes before and after (I)DFT.
* Small fix.
* Written tests for the transformation TFRollToRoll.
* Added comments to some transformations.
* Deleted redundant import.
* Written tests for the transformation TransposeDFT.
* Fixes in MO IR Reader to read/write (I)DFT.
* Fixes in the list of supported TF layers.
* Started to write tests for SSliceComplexRolledFFTPackBlockReplacement transformation.
* Written tests for the MO transformation SSliceComplexRolledFFTPackBlockReplacement.
* Written tests for the MO transformation ComplexAbs.
* Tests for transformations were moved into unit_tests directory.
* All extractors for (I)FFTxD are in one file now.
* Deleted redundant transformations.
* Fixed extractor for TF Roll: now this operation is read as MO Roll.
* Added comments to TFFFT operation.
* The method insert_transpose of classes TransposeDFT and LayoutChangeForGatherND was moved into the separate function in the file model-optimizer/extensions/middle/InsertLayoutPropagationTransposes.py.
* Fixed comment for the transformation TransposeDFT.
* Small fix.
* Some fixes.
* Deleted shape infer function for the operation TFFFT. Sorted imports in complex_abs.py.
* Small fixes.
* Deleted redundant import.
* Fixes in some asserts.
* Small fix.
* Added names for created nodes in the transformation ComplexAbs.
* Added comments to the method canonicalize_axes.
* The transformation SSliceComplexRolledFFTPackBlockReplacement was split into the sequence of transformations SSliceComplexRollReplacement -> RollRealImagPackReplacement -> TFFFTToDFT.
* Written tests for the transformation SSliceComplexRollReplacement.
* Written tests for the transformation RollRealImagPackReplacement.
* Written tests for the transformation TFFFTToDFT.
* Deleted commented code.
* Fixed types of constants in the transformation ComplexAbs.
* Written tests for canonicalization of signal_size value.
* Deleted 'Replacement' from names of files and classes.
* Used comarison of ids, not names.
* replace_sub_graph was replaced with find_and_replace_pattern.
* Now the transformation RollRealImagPack is executed before running transformation model-optimizer/extensions/front/Pack.py.
* The body of the function create_dft_from_tffft is a part of the transformation TFFFTToDFT body now.
* Now method correct_roll_axes of classes RollRealImagPack and SSliceComplexRoll is moved to the function in mo/front/tf/graph_utils.py.
* Small changes.
* Added comment before mark_input_as_in_correct_layout(roll, 2).
* Now the functions correct_roll_axes generates sub-graph in the input port 2 of Roll.
* Corrected tests for the transformation SSliceComplexRoll.
* Corrected tests for the transformation RollRealImagPack.
* Deleted commented code.
* Some renaming.
* Added decomposition of the separate operation ComplexAbs (without Complex before it).
* Added comment to the transformation ComplexAbsAfterComplex.
* Optimized imports for the transformation TFFFTToDFT.
* The transformation SSliceComplexRoll was split into the sequence SSliceComplex -> CorrectRollAxes and disabled.
* Written tests for the transformation ComplexAbs.
* Written tests for the transformation SSliceComplex.
* Written tests for the transformation CorrectRollAxes.
* Deleted the transformation SSliceComplexRoll.
* Deleted renaming nodes.
* Fixed comment.
* Small fixes.
* Small fix.
* The attribute need_correction was renamed as input_rank_changed.
* Small fixes.
* Deleted commented code.
* Now we iterate over all complex_node.out_port(0).get_connection().get_destinations() input ports and mark the corresponding nodes with the marker attribute.
* Added the attribute 'in_ports_count' into the class FFTBase.
* Tests for the transformation TransposeDFT were rewritten using helper functions.
* Now the transformation RollRealImagPack uses existing Roll node instead of creating new one.
* Small fixes.
* Fix in the documentation.
* Written class to read MxNet (I)FFT operations. Written corresponding extractors.
* Corrected shape infer function for MXFFT operation. Written transformation to convert MXFFT to (I)DFT.
* Fixed shape infer function.
* Fixed the conversion MXFFT to (I)DFT.
* Written tests for the transformation MXFFTToDFT.
* The function correct_roll_axes was replaced with more generic function add_constant_to_negative_values.
* Fixes in classes TFFFT, FFTBase, DFT, IDFT, MXFFT.
* Added asserts in constructors of operations TFFFT and MXFFT.
* Refactored transformation MXFFTToDFT: conversion of DFT and IDFT were moved into separated functions.
* Moved some commented code.
* Fixed BOM file.
* Written function convert_ifft_to_dft.
* Started to rewrite tests for MXFFTToDFT transformations, in the case is_inverse=False.
* Small fixes.
* Fixes in the transformation RollRealImagPack.
* Renaming tests class for the transformation SSliceComplex.
* Fixes in the function compare_graphs. Now we get all output nodes of op node, and these output nodes are sorted by names.
* Fixed tests for the transformation MXFFTToDFT.
* Fix in the transformation ThresholdedReluDecomposition: added disconnect for trelu input port.
* Fixes in test for the transformation TFSliceToSlice.
* Small fix in the transformation ObjectDetectionAPIPreprocessor2Replacement.
* Small fix in comment.
* Optimized imports.
* Used remove_node in the transformation ThresholdedReluDecomposition and remove_nodes_from in the transformation RollRealImagPack, instead of ports disconnection.
* Deleted commented code.
* Deleted test case test_slice_replacer_begin_with_2_inputs.
* initial changes (IR not generated)
* extractor fix
* convert tdnnf (with correct infer)
* refactoring + comments in code
* added unit tests + couple fixes based on tests
* change order for old convolutions
* fix pylint
* small refactoring
* added if to remove changes in old irs
* doc updated
* fix layout and kernel shapes for old convolutions
* fixed test
* moved test
* fix import in test
* fixed backward compatibility
* review fixes
* Removed test-generator from all MO requirement files except the dev one
* Moved all MO unit tests files to a separate directory
* Added __init__.py files to the tests directory. Fixed importing paths for some unit tests
* Fixed imports in all unit tests. Moved all unit test related files from the MO code to the dedicated directory
* Renamed directory with unit test utils
* Updated imports in unit tests
* Add keep split output ports without consumers
* Fix ir reader for split outputs
* Update unit tests
* Refactoring code according to review
* Fix unit test
* Fix
* fix batch adding to init value of read value
* fix for batch in Kaldi models
* added broadcast to be able reshape in IE
* test fixes, added batch broadcasting to created constants
* pep fixes
* move all changes to 1 transformation
* added unit test and fix insertSelect transformation
* added comments
* remove unneeded params search
* fix element_size to send correct batch
* fix update batch in element_size
* couple fixes
* update BOM file
* fix review comments
* review fixes
* review fixes
* fix license headers
* Initial working solution
* moved bfs_search_apply_on_shapeof_subgraph_nodes from utils/graph.py to MarkShapeOfSubgraphDataType.py
* Reused bfs from MarkSubgraphsWithCorrectLayout.py
* fixed e2e precomit issues: specified correct const data_types, fixed BFS search staring point to avoid nodeless shapeof subgraphs
* fixed mxnet_rnnt: added converting all Const nodes in ShapeOf subgraph in MarkAndChangeDataTypeInShapeOfSubgraphs.py, revised Const values in transformations that affect ShapeOf subgraph nodes
* reverter ReverseV2ToReverseSequence.py and DecomposeBidirectionalRNNSequence.py
* in MarkSubgraphsWithCorrectLayout BFS search beauty applied
* apply review comments, returned back 'in_shape_subgraph' attribute
* graph condition added
* MO IR reader fix for mixed FP16 models, added replacer order placement comment
* moved to back phase
* new solution with marking nodes from bottom to top (WIP)
* successfully tested on back phase
* corrected unittest
* removed check for start nodes size in bfs
* fix transformations that insert f64 to f32 in shape subgraph
* corrected log.warning -> log.debug
* revised list if shape input operations added unittest for Const shape inputs
* applied @lazarevevgeny's comments
* licence head corrections
* [MO] Split iteration node for TensorIterator in case multiple consumers
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Implement additional BackEdgeTensorIterator and NonConstBeginStridedSlice transformations
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Finalize implementation of DIEN support by the MO tool
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Add unit test for NonConstBeginStridedSliceReplacement transformation
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Fix retrieving shrink_axis_mask attribute value
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Address the majority of review feedback
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Some additional checks in the MO transformation UnsqueezeTileReshapeBlockToInterpolate.
* Refactored transformation UnsqueezeTileReshapeBlockToInterpolate: checks of applicabilty were moved into the separate function.
* Rewritten the MO transformation UnsqueezeTileReshapeBlockToInterpolate.
* Now we replace all block Unsqueeze+Tile+Reshape by Interpolate-4.
* Fixed comment.
* Added comments about applicability criteria.
* Some fixes.
* Small fix.
* Deleted redundant type casts.
* Added an example into comment.
* Now an interpolated axis length is calculated using the function node_to_get_shape_value_of_indices.
* Fixed tests.
* Optimized imports.
* Fixes in the MO transformation SplitConcatPairToInterpolate.
* Small fix.
* Small fix.
* Added test for the case when inputs of Concat are two Splits.
* Added docstring to the function get_concat_after_split.
* Some fixes.
* Small fix.
* Commit.
* Fixed element type of scales input in the MO transformation UpsampleToResample.
* Fixes in the transformation TFSliceToSliceReplacer.
* Fixes in tests.
* Small fixes.
* Reverted fixes in TFSliceToSliceReplacer.
* Small fix.
* Added tests for fractional scales in the transformation UpsampleToResample.
* fix ss
* successfully converted
* successfully run moved infer and normalizer unit-tests
* successfully rewritten StridedSlice infer unittests
* int64 array
* Successfully converter crash-when-loading, xj_feauture and toy nets (cherry-picked maxpoolV4 and tf_broadcast_ext)
* successfully moved PermuteAttrs to general mechanism
* successfully converted xj_feauture and crash when loading with the new rewritten SS infer
* fixed get_shape_from_slice and moved to common utils
* fixed extending masks and some other
* some refactoring
* fixed extending masks in extractor, fixed licence year and some other code clearing
* corrected a couple of unittests
* fox permute for 5 rank slice and 4 rank inputs/
* WIP
* Added comments
* fixed StridedSlice in ProposalMutation.py
* rechecked shape_infer unittests added some new cases
* added shape_infer unit-tests after StridedSliceNormalizer pass and Permute unit-tests
* corrected unittests
* Applied review comments
* general permutations for inputs implemented, corrected ellipsis unrolling when shrink_axis is at the beginning, some other corrections
* removed code duplication in infer and normalizer, moved 'slices' attr normalizing to StridedSliceNormalizer.py
* removed some code duplication and other minor improvements
* Added tests
* minor corrections
* wider range of unittests added (froze the number)
* review comments applied
* enabled skipped unit-test
* comment corrections
* applied review comments: changed op -> type, added some asserts, corrected comments and other minor corrections
* sorted inputs, updated Supported_Frameworks_Layers.md, some minor
* Refactored infer function and function supported_attrs for the layer Interpolate.
* Small change.
* Deleted unneeded checks in transformations ResizeToInterpolate2D and ResizeToInterpolate3D.
* Small fix in the extractor of ONNX Resize.
* Now the extractor of TF ResizeBilinear generates Interpolate-1 again, because 'axis' in final version of Interpolate-4 specification is an input but is not attribute.
* Now the extractor of TF ResizeNearest generates Interpolate-1 again, because 'axis' in final version of Interpolate-4 specification is an input but is not attribute.
* Added static method get_axis into class Interpolate.
* Refactored class CanBeFused in the transformation InterpolateSequenceToInterpolate.
* Fixed transformation InterpolateSequenceToInterpolate according to the last version of the specification of Interpolate-4.
* Started to write support of Interpolate-4 in the transformation InterpolateWithConcat.
* Added support for Interpolate-4 into the transformation InterpolateWithConcat.
* Added support for Interpolate-4 into the transformation InterpolateConcat.
* Added support for Interpolate-4 into the transformation InterpolateReshapeWA.
* Added support for Interpolate-4 into the transformation InterpolateTranspose.
* Started to add test for opset4 case of the transformation InterpolateSequenceToInterpolate.
* Added test for InterpolateSequenceToInterpolate (test_2d_interpolate_sequence_1_opset4_case).
* Added test for InterpolateSequenceToInterpolate (test_2d_interpolate_sequence_4_opset4_case).
* Added another test for InterpolateSequenceToInterpolate (test_2d_interpolate_sequence_5_opset4_case).
* Added another test for InterpolateSequenceToInterpolate (test_3d_interpolate_sequence_1_opset4_case).
* Finished addition of tests for opset4 case of InterpolateSequenceToInterpolate.
* Small change.
* Now opset is only opset1 or opset4 in the transformation InterpolateTranspose.
* Small fixes in transformations ResizeToInterpolate2D and ResizeToInterpolate3D.
* Deleted reading of unused ONNX attributes.
* Fixed docstring of the transformation InterpolateV1ToInterpolateV4.
* Added node name in assert about axes input.
* Fixes in the definition of the operation ONNXResize11.
* Now Interpolate-4 cannot have 'extension' as opset.
* Now the transformation InterpolateV1ToInterpolateV4 uses find_and_replace_pattern but not replace_sub_graph.
* Fixed tests for transformations InterpolateReshapeWA and InterpolateConcat.
* Fixed some tests.
* Rewritten operation Interpolate-4 class according to new variant of documentation.
* Some fixes in ONNXResize11 operation class.
* Now the transformation ONNXResize11ToInterpolate generates Interpolate-4 with 4 inputs.
* Now the transformation UpsampleToResample generates Interpolate-4 with 4 inputs.
* Now the transformation NearestNeighborUpsampling generates Interpolate-4 with 4 inputs.
* Now transformations ResizeToInterpolate2D and ResizeToInterpolate3D generate Interpolate-4 with 4 inputs.
* Now the transformation SplitConcatPairToInterpolate generates Interpolate-4 with 4 inputs.
* Now the transformation UnsqueezeTileReshapeBlockToInterpolate generates Interpolate-4 with 4 inputs.
* Now the transformation InterpolateV1ToInterpolateV4 generates Interpolate-4 with 4 inputs.
* Some fixes.
* Fixed the transformation InterpolateSequenceToInterpolate according to new variant of Interpolate-4 specification.
* Fixed typos.
* Added shape_calculation_mode to supported_attrs.
* Small fixes.
* Added operation ONNXResize10 and the transformation ONNXResize10ToInterpolate4.
* Fixed function correct_scales_using_dst_shape.
* Some fixes in InterpolateSequenceToInterpolate.
* Fixed bug in the method __call__ of the class CanBeFused: now self.accumulated_axes is correctly cleared in all cases.
* Small change.
* Fixed tests for the transformation SplitConcatPairToInterpolate.
* Now transformations InterpolateWithConcat, InterpolateReshapeWA, InterpolateConcat support Interpolate-4.
* Fixed the transformation InterpolateTranspose for the case of Interpolate-4.
* Written the back transformation InterpolateV4AxesCorrection to convert 'axes' input of Interpolate-4 from NHWC to NCHW layout.
* Added PermuteInput in Interpolate-4 infer.
* Fixed typos.
* Deleted the transformation InterpolateAxesCorrection.
* Now Interpolate-4 permutes axis, not shape in input port 3.
* Small fix.
* Some fix.
* Fixed bug in the transformation UpsampleToResample.
* Added some debug prints.
* Added more debug prints.
* Now ONNX Upsample-9 operation is read as ONNXResize10.
* Small fix.
* Small fixes.
* Fixed tests for the transformation SplitConcatPairToInterpolate.
* Deleted debug prints.
* Deleted some debug prints.
* Fixes in the transformation UnsqueezeTileReshapeBlockToInterpolate and its tests.
* Small fix in the transformation InterpolateSequenceToInterpolate.
* Started to write nGraph transformation to convert Interpolate-1 to Interpolate-4.
* Deleted redundant files.
* Small fixes.
* Small fix.
* Written draft of the transformation Interpolate-1 -> Interpolate-4.
* Small fix.
* Now ONNX Importer reads Resize-10 as Interpolate-4.
* Fixes in the test onnx_model_resize10_import_only.
* Small fix in the test for the conversion Interpolate-1 -> Interpolate-4.
* Small fixes.
* Fixed NGraphReaderTests for Interpolate.
* Some fixes.
* Deleted class for Resample operation.
* Fix in the transformation NearestNeighborUpsampling: fixed precision of the input 'scales' of generated Interpolate-4.
* Fixed typo.
* Now the TF operations ResizeBilinear is readed as internal MO operation TFResizeBilinear. This internal operation is converted into Interpolate-4.
* Small fix in BOM-file.
* Added checks of existence of attributes of TF ResizeBilinear operation.
* Small fixes in the conversion of the internal MO operation TFResizeBilinear to Interpolate-4.
* Small fixes.
* Small fixes.
* Now the transformation ONNXResize10ToInterpolateV4 calculates sizes input as input_shape * (scales + epsilon).
* Added the internal MO operation TFResizeNearestNeighbor.
* Fixes in the transformation SplitConcatPairToInterpolate and its tests.
* Fixes in the transformation UnsqueezeTileReshapeBlockToInterpolate and its tests.
* Written the transformation that converts the internal operation TFResizeNearestNeighbor into Interpolate-4.
* Now MO reads the TF operation ResizeNearestNeighbor as the internal MO operation TFResizeNearestNeighbor.
* Small fix.
* Now the specification of Interpolate-4 clarifies that the mode linear_onnx supports only 2D or 4D input tensors.
* Small fix.
* Some fixes.
* Moved the transformation ONNXResize10ToInterpolateV4 to the front stage.
* Deleted infer function and function supported_attrs for ONNXResize10 operation.
* Deleted supported_attrs() for TFResizeBilinear and TFResizeNearestNeighbor.
* Some fixes.
* Fixes in the shape infer function of the nGraph operation Interpolate-4. Now 'axes' input can be non-constant. In the such case, all elements of the output shape are Dimension::dynamic().
* Deleted corner cases processing in transformations TFResizeBilinearToInterpolateV4 and TFResizeNearestNeighborToInterpolateV4.
* Rewritten the function replace_resize_bilinear.
* Written inner MO operation TFResize that covers TF operations ResizeBilinear and ResizeNearestNeighbor.
* Now TF operations ResizeBilinear and ResizeNearestNeighbor are read as an internal operation TFResize in MO. Transformations TFResizeNearestNeighborToInterpolateV4 and TFResizeBilinearToInterpolateV4 are fused into one transformation TFResizeToInterpolateV4.
* Some changes in the shape infer function of nGraph op Interpolate-4.
* Small fix.
* Some changes.
* The transformation TFResizeToInterpolateV4 is moved to the front stage.
* Deleted redundant assert.
* Deleted transformations ResizeToInterpolate2D and ResizeToInterpolate3D.
* Some renaming.
* Small change.
* Deleted .copy() in the shape infer function of the internal operation TFResize.
* Small fix.
* Small fixes.
* Added comment about the case when the input 'axes' of Interpolate-4 is non-constant.
* Written test for Interpolate-4 shape infer, for the case when the input 'axes' is non-constant and shape_calculation_mode = scales.
* Some fixes.
* Small fixes.
* Small fix.
* Added yet another test for the case of non-constant 'axes' input of Interpolate-4 (when shape_calculation_mode = sizes).
* Added some comment.
* Small fix.
* Reverted changes for InterpolateWithConcat.
* Added type checks for all inputs of nGraph operation Interpolate-4.
* Added u32 and u64 to supported element types of sizes and axes inputs of nGraph operation Interpolate-4.
* Fixed some functional tests.
* Some changes.
* Added helper function float32_array.
* Now the MO transformation InterpolateV1ToInterpolate preserves names of layers.
* Small fix.
* Small fix.
* Reverted some change.
* Small fixes.
* Small fix.
* Small fix.
* Small fix.
* Small fix.
* Reverted changes in the nGraph reader tests for Interpolate-1.
* Some revert.
* Fixed some copyright year.
* Fixed mapping of input name
* Fixed unit tests
* Fixed mapping of input name
* Fixed unit tests
* attributes check fix
* PEP8 code format
* code duplicate removal
* variable rename
* [MO] Implement transformation to avoid RandomUniform in a particular drop-out block
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Remove old RandomUniform transformation and correct const values
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Fix atol value
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Move DropoutWithRandomUniform transformation to the front
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Change just RandomUniform to Broadcast in the transformation
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Correct comment for the transformation
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Remove redundant line
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Started to write equality comparator for StridedSlice layers.
* Now considered only unique StridedSlice consumers of non-constant data nodes.
* Fixed test for the transformation ConvertGroupedStridedSlice.
* Deleted commented code.
* Small fixes.
* Moved functions unique_by and group_by_with_binary_predicate to mo/utils/utils.py.
* Deleted function collect_sequences.
* Added asserts into the constructor of StridedSlice.
* Written test for the case when 1) there are 4 StridedSlice operations; 2) 2 of StridedSlice have the same data; 3) 2 others StridedSlice have the same data; 4) all StridedSlice operations outputs are consumed by different operations.
* Added some comments.
* Fix ElementwiseInputReshape transformation
Reshape node always needs to be inserted
in order to preserve ShapeOf nodes (reshapability of a model) that can potentially be above
elementwise node.
Refactor EltwiseInputReshape_test and EltwiseInputNormalization_test since the logic of maintaining reshape for eltwise has been changed.
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Merge EltwiseInputNormalization and EltwiseInputReshape transformations
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Remove Unsqueeze from Fused_op
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Fix code after code review #1
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Fix code after review #2
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Fix code review #4
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Perform full normalization based on shapes of all inputs to eltwise
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Refactor much to avoid old API and edges with unsqueeze_dims attribute
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Fix code after review
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Fixed transformations looking for FusedBatchNorm operation to consider FusedBatchNormV2 and FusedBatchNormV3 also.
* Updated unit test for FusedBatchNormTraining
* Fixed unit test
* Generate TensorIterator without back edges from TensorFlow models
* Added a check in the MarkSubgraphsWithCorrectLayout to not fail when port is not connected
* Updated the 'protobuf2nx' to consume the graph protobuf message
* Cleanup TI from the IRv7 specific code
* Do not run some front transformations recursively
* Draft support for the ONNX Loop operation when 'cond' = True
* LoopToTI transformation changes
* Added draft of Loop operation and parser for ONNX Loop operation body
* Updated Loop body parser + added shape and type infer for the Loop operation
* Fixes for ONNX Loop operation parser
* Moved Loop parsing to Loop op extractor. Added generation of external edges for the Loop body ops
* Added support for ThresholdedRelu using decomposition
* Added support for Min ONNX operation
* Draft fixes for port_map generation for the Loop
* Rename transformation file and fix BOM
* Fixed shape inference for Loop scan outputs (axis is not None)
* Fixed shape inference for ONNX Loop operation
* Refactor checks in the TensorIteratorMerge transformation
* Code refactoring. Enabled commented transformations
* Documentation update for ONNX Loop, ThresholdedRelu and Min
* Fixed typo in the Loop front transformation where execution condition input is connected. Other refactorings
* Fixed in the Loop extractor
* Added printing 'internal_layer_id' attribute in the graph dumper
* Updated calculation of iterations number for the Loop
* Added missing code
* Fixed output port shapes and types generation for Loop operation
* Update function names and variable names in the Loop operation
* Fixed type inference for iteration count input
* Added removal of input/output ports of the Loop if they are not used
* Fixed renumbering Loop operations input/output ports to keep mandatory
* Fixed ThresholdedReluDecomposition transformation
* Updated MO IR Reader to know about Loop operation. But it is still not supported by the MO IR Reader
* Added unit test for Slice op shape infer (reverse the sequence of elements)
* Reverted changes in the ONNX loader function call to protobuf2nx
* Enable Reshape0DToSqueeze transformation recursively
* Refactored Loop operation support implementation
* Changed ThresholdedReluDecomposition to generate Const with shape [1] instead of scalar
* Code style and wording fixes
* Restored accidentally removed 'return' statement in the TI shape infer function
* Fixed comments
* Fixed comment
Co-authored-by: Evgeny Lazarev <elazarev.nnov@gmail.com>
* Extend MO for operation GatherND
* Update documentation
* Rename GatherNd.py to gathernd.py
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>