* Fixed attributes saving to keep tensor debug info in Parameter node.
* Added comment and unit tests.
* Small correction.
* Small correction of unit test.
* Comment corrected.
* 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.
* Removed transformation which removes Const->Result sub-graphs
* Removed one more MO transformation which removes Const->Result sub-graph during the front phase
* Use Serialization as a default engine in MO
* Added cmd option to use old serialization
* Added mapping file generation
* Test mapping file generation
* Fix setBatchsize parameters order; fix mapping file generation
* Added FrameworkNode; added method to read models with custom ops but without extensions
* Added python API for read_network_without_extensions function; updated mo not to use IECore
* Added read_model_without_extensions to IReader and IParser
* Fix V7 IR reader
* Fix pword value
* Fix dllexport macro usage
* Add metainfo to IR
* Fix nGraph code style
* Fix license header
* Restore prepare_emit_ir behaviour
* Fix compare_function to resolve situation when Result input port has multiple names
* Update Compare Functions
* Fix FrameworkNode validation
* Self-review
* CodeStyle check
* --use_fallback -> --use_legacy_ir_generation
* Sort imports in main.py
* --path_to_model -> --input_model
* Use logging instead of print
* Code simplifucation&cleanup
* Fix offline_Transformations key
* Fix GeneraeMappingFile comments
* Use Extension approach to work with custom ops
* Fix versions check
* Code clean-up
* Moved FrameworkNode to inference_engine_transformations library
* Fix FrameworkNode includes
* Code clean-up
* 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
* Add check for ~= sign for modules versions check
* Add unit test
* Update check for environment markers
* Update check for ~= sign
* Update unit tests
Co-authored-by: achetver <anton.chetverikov@.intel.com>
* Change error raising to message printing
* Update modules versions check
* Update check and add unit test
* Fix wrong function call
* Update unit tests
* Fix test
Co-authored-by: achetver <anton.chetverikov@.intel.com>
* 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
* %~dp0 can't handle path which include Space
The default OpenVINO install directory is C:\\Program file(86)\\Intel\\..., which contains space. So when users run this script, the path is wrong.
To handle this issue, I modify two part:
one is the python_command, use a local var to store this path.
The other is the errorlevel, just add double quotation marks
* fix python_command path issue
* delete unused blank line
* Added operation Roll to MO.
* Updated BOM file.
* Replaced FrontReplacementPattern with FrontReplacementOp.
* Added set_input_permutation() to Roll infer function.
* Optimize imports.
* Code refactoring.
* Code refactoring.
* Removed unnecessary variable.
* Added name to the second reshape.
* Added rename_nodes to set original op name be at second reshape.
* Small fix.
* 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
* Fixed framework name attribute for onnx, mxnet.
* Fixed framework name attribute for caffe.
* Removed unnecessary attribute setting from add_opoutput()
* Added identity nodes adding to outputs in mxnet loader.
* Removed unnecessary reformat.
* Removed unnecessary reformat.
* Added check for empty name.
* Used nodes indices instead of node names in loader.
* Code refactoring, small bug fixed.
* 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>
* Do not run transformations for TF 2.X OD API models recursively (needed for models with Loop operation)
* Added anchor front transformation to group all TF OD API transformations. Added new necessary dependencies from KerasRNN transformations related to While support
* Added JSON configuration files for TF 2.4 OD API SSD and EfficientDet models
* Updated documentation with table of supported TF 2.x OD API models
* Improved visualization of the dependency graph
* Updated version of the pre-processing transformation for TF 2.4 OD API models
* Fixes in the TF 2.x OD API models conversion
* Fixed order of applying mean/scale values for TF 2.X OD API pre-processing
* Updates to the documentation
* Fixes for the preprocessor block transformation for the TF OD API models
* Added code comments
* Fixed bom file
* Unit tests for the TF 2.4 OD API ObjectDetectionAPIPreprocessor2Replacement transformation
* Code cleanup
* Updates to the documentation on how to convert TF OD API models and graph dumper
* Added assert to make sure that operations in the `get_specific_ops_with_const_inputs` has exactly 2 inputs
* Add ScatterElements value propogation
* Add condition for input nodes
* Add asserts
* Refactoring scatter according to review
* Add unit tests for 1d axis tensor
* Refactoring according to review
* refactoring unit test
* Refactoring according to review
* Update unit test
* Update unit test