* [Common][FE] Implement reverse infer for Transpose
Signed-off-by: Kazantsev, Roman <roman.kazantsev@intel.com>
* Update src/common/transformations/tests/common_optimizations/reverse_shape_and_type_infer.cpp
* Update src/common/transformations/tests/common_optimizations/reverse_shape_and_type_infer.cpp
* Update src/common/transformations/src/transformations/common_optimizations/reverse_shape_and_type_infer.cpp
Co-authored-by: Maxim Vafin <maxim.vafin@intel.com>
* Add one more tests with constant order and known output
* Fix reverse infer for a case of know order and output shape
---------
Signed-off-by: Kazantsev, Roman <roman.kazantsev@intel.com>
Co-authored-by: Maxim Vafin <maxim.vafin@intel.com>
* Add dynamism for BatchToSpace conversion
* Extend dynamism for BatchToSpace conversion
Only block input needs to be const 'cse axes_order_const is freaky
* Enhace dynamism for BatchToSpace conversion
Block input need not be const now.
* Add dynamism for STB by elements conversion
* Remove const need for crops for BTS by_elements
* temp for review
* Try to fix output tensor overwrite
* Make test to reproduce invalid shape inference
* Reproduce the error with template plugin
* Fix code style
* Fix 0D inputs issue
* Remove 0D shape parts before Concat
* Apply nested namespaces
* Enable non-constant STB Block input
* Fix BTS runtime info
* Fix STB by elems runtime info
* Add dynamism for STB conversion
* Add BTS dynamic data test
* Add STB dynamic data test
* Reduce STB concats
* Add tests naming
* Edit
* style
* Consider other block element types
* Enhance type test
* Use opset10 only
* Check block shape
* Added -Wall for Clang and GCC
* Fixes
* Don't use /J
* Fixed warnings
* Fixed warnings
* More fixes
* Fixed for MSVC
* Fixed more warnings on Windows
* Suppressed some warnings in template plugin
* Update src/tests/functional/plugin/shared/include/behavior/plugin/caching_tests.hpp
* Added suppression for PT FE
* Suppressed warnings in TF FE
* Suppressed warnings on Core unit tests
* Suppress warnings in python
* Suppressed Windows warning for 3rd party modules
* Suppresed one more warning
* Enable TransposeSinking in MOC
* replace TransposeSinking in TF Frontend
* fix TS for concat op
* Fix TS for Binary/Concat ops: broadcast transposed input
* Fix transpose sinking for Pad op
* fix pad tests
* fix dynamic case for Concat/Binary ops
* codestyle
* fix TransposeSinking for Split/Concat ops
* fix split
* Resolve review comments
* Use ov::Tensor in are_equal
* Use ov::Tensor in bounds evaluation
- remove from node evaluates bounds for HostTensor
- update validation utils
- update operators
* Fix code style
* Fix windows compilation errors
* Fix windows compilation errors in scatter update
* Improve reshape output shape calculation
during shape infer
* Add common bound evaluator
- rename evaluate_bound_t -> evaluate_bound
* Fix code formatting
* Move bound evaluation util functions to dev API
* Fix compilation issues
* Remove from dev API not required bound eval
- extract bound eval functions to separate source
* Add missing doxygen comment
* Use ref evaluate in bounds calc for shape_of
because input data can have dynamic type and
create tensor is not possible and data type has
no meaning for shape calculation.
* add pattern mathing for MVN, Exp->ReduceSum, L2Normalize, Div with eps for mixed precision inference
* added necessary includes
* clang_format_fix_all
* fix warning_as_error for unused variable
* fix warning_as_error for specifying float literals
* enable marking for fp32 IRs as well
* cosmetic improvements in unit-tests
* fix warnings as error
* added unit-tests for compress_float_constants.cpp for out of range values
* Update align_mixed_fp32_fp16_types.cpp
* Apply suggestions from code review
Co-authored-by: Maxim Vafin <maxim.vafin@intel.com>
* some grooming: mainly in imports
* build fix: replaced ngraph:: -> ov::
* collected all markings in a single file
* shortened pass names
* style fix
* made MarkNormalizationOps as a separate pass
* removed redundant comment, fixed description of MarkSugraphsToKeepInMixedPrecision pass
* comments on Up and Down marking in MarkSugraphsToKeepInMixedPrecision
* cleared info messages in compress_float_constants.cpp, removed threshold adjusting from ENV
* moved declarations of MarkNormalizationOps, MarkExpInReduceOpPath, MarkDivWithEps to hide them from outside users
* simplified pattern matching for max_or_add
* moved `reduceop_path` rt_info inside mark_subgraphs_to_keep_in_mixed_precision.cpp
* fix potential bug with Convert
* removed redundant check for Converts in `insert_converts_after_if_needed` as well
* set Convert types more safely
* corrections in opset10 namespaces; some minor corrections
---------
Co-authored-by: Maxim Vafin <maxim.vafin@intel.com>
* Add PushConstantToSubgraph transformation
Transformation detects constfoldable inputs to MultiSubGraphOp,
constantfold them and then pushes them to inner subgraphs.
Ticket: 98155
* cast to int
* comments, split to functions
* remove op::util
* Review TopK for:
- label and dimension propagation
- partial value and label propagation
- preserve partial value and labels
- add evaluate upper, lower and label
* TopK v1 use shape infer instead fallback
- update static shape inference tests
* TopK shape_infer return output shapes
* Add new way to get tensor data as shape
with custom data processing
- Update tail op to use new function
- Update topk op to use this function
- Add test for negative k
* Add missing include
* Fix compilation issues
* Add support for i4 and u4 element types in
get_raw_data_as
* Fix signed and unsigned and compile warnings
* Remove constexpr from InTypeRange::operator()
* Use forward reference for functor
- minor corrections in InTypeRange class
* Use shape)infer in evaluate
- fix TopK v3 ctor for input data validation
* Fix transformation tests to use correct type for k
* Fix f16 handling in get_raw_data_as
* Correct topk bounds evaluators
* Topk detect overlap for same size dimensions
As op specification not guarantee correct order of
several elements same value
* Remove evaluate bounds
required investigation if required then will be provided
* Remove bound evaluation leftovers
* Update get const data in slice ops
* Add ov::label_t alias and set it to uint32_t
to simplify conversion to tensor element type
* Fix clang formatting
* Fix one hot test to use label_t
* Remove label types alias duplicates
propagate using alias for label types
* Correct label type in transpose tests
* Define label_t in dimension
remove size_t usage as label type.
* Correct label type usage in Einsum and LSTM op's
* Correct label type usage in tracker transformation
scatter update and split op tests
* Correct usage label type in type_porp tests
- squeeze
- tile
- transpose
- variadic split
* Correct usage label type in type_porp tests
- squeeze
- transpose
- unsqeeze
- variadic split
* Add anti-downgrade downcast test
* Strengthen limits test
* Allow convert if normalization is off
* Suppress downgrading for F64 only
* Limit eps values to float
* Limit eps values to float
* Add test
* Consider actual double values
* keep Shape subgraph in FP32 for GPU
* replaced ngraph:: -> ov:: namespace
* renamed ConvertModelToFP16ElementType -> ConvertCompressedToMixedPrecision and other passes; removed unnecessary argument for the pass
Signed-off-by: Pavel Esir <pavel.esir@intel.com>
* Update src/common/transformations/src/transformations/common_optimizations/convert_compressed_to_mixed_precision.cpp
* Update src/common/transformations/src/transformations/common_optimizations/convert_compressed_to_mixed_precision.cpp
* rephrase calling of ConvertPrecision to avoid error of an unused variable
* Update convert_compressed_to_mixed_precision.cpp
* placed calling of ConvertCompressedToMixedPrecision into the beginning of CommonOptimizations
* Update transformations_pipeline.cpp
* refactored unit-tests
* cleared obsolete commented line
* code style fix
* Update src/common/transformations/src/transformations/common_optimizations/common_optimizations.cpp
Co-authored-by: Maxim Vafin <maxim.vafin@intel.com>
Signed-off-by: Pavel Esir <pavel.esir@intel.com>
Co-authored-by: Roman Kazantsev <roman.kazantsev@intel.com>
Co-authored-by: Maxim Vafin <maxim.vafin@intel.com>
* add unit test for incompat shapes case; fix existed unit tests using get_test_name
* cleanup
* fix unit tests; add unsqueeze insertion
* cleanup
* add test for concat
* fix unit test for concat
* reset concat test to master
* cleanup
* cleanup after rebase
* cleanup
* fix after rebase
* clang fixes
* remove unused headers
* input squeeze on forward sinking
* code review fixes
* add test for forward unsqueeze case
* cleanup
* fix windows build warning/error
* code review fixes
* Add reverse infer
* Add more convolutions and include transformation in normalize of tf fe
* Fix code style
* Add activations and eltwise support
* Fix code style
* Add deprecation supression
* Fix pad type
* Remove eltwise
* Remove ngraph namespace usage
* Fix code style
* Apply review feedback
* Add tests for activations and eltwise
* Make transformation friend of tensor to avoid deprecated API
* clang fix all
* Update src/common/transformations/include/transformations/common_optimizations/reverse_shape_and_type_infer.hpp
Co-authored-by: Roman Kazantsev <roman.kazantsev@intel.com>
Co-authored-by: Roman Kazantsev <roman.kazantsev@intel.com>
* initial
* build fixes + couple of simple unit tests
* remove old transpose_sinking_binary berfore merge with PR branch
* initial
* clang cleanup fixes
* remove TrasposeAxis function; cleanup namespaces
* fix TransposeInputsInfo spell
* one_input_transpose spell
* cleanup speel
* spell
* decompose forward sinking
* decompose backward sink
* use NodeVector
* clang cleanup
* decomposite transformations into different files
* decompose unit tests
* clang cleanup
* fix transformation names in general transformation
* fix ngraph::pass::TransposeFuse use element type the same as in fusing nodes
* add checkout sinking ability function; check sinking ability for unary operations; add unit test on general transformation
* sinking check for binary; unit tests; fixes
* add check to concat transformation; unit test
* add check to split tranformation
* azure build fixes
* add general test
* cleanup tests using common class
* clang cleanup
* add transpose sinkig to moc
* remove comment
* fix after rebase
* clang fixes
* fix after rebase
* code review fixes
* fix after rebase
* add RUN_ON_FUNCTION_SCOPE to general transformation
* fixes after rebase
* move tests to new directory
* cleanup
* use ov::RuntimeAttribute
* move NoTransposeSinkingAttr to files
* fix namespace
* fix names
* Move transformation tests to the correct directory
* Revert "Move transformation tests to the correct directory"
This reverts commit 0c2a932505.
* Move the transformation tests to the correct dir