* Calculate model layout based on 'tensor' layout and convert steps
Previously, 'model layout' is set to '...' by default,
thus no shape conversion happened when tensor layout is set to 'NHWC', then there was explicit convert_layout "NCHW"
Now "model layout" is calculated based on tensor layout and conversion steps:
Examples:
1) Tensor: NHWC, Convert: NCHW. Result: NCHW
2) Tensor: NHWC, Convert: 0312. Result: NCHW
* Fix for set_shape + resize case
* Renamed ov::Function to ov::Model
* Fixed all for macos
* Fixed build
* Fixed build
* Revert changes in GPU plugin
* Fixed ngraphFunctions
* Fixed all for mac
* Fixed new test
* Fixed if for Windows
* Fixed unit tests and renamed Function in python API
* Fixed code style
* Fixed import
* Fixed conflict
* Fixed merge issues
In case of partially-dynamic shape, e.g. {?,3,?,?} shape inference
for gathering channels and reverse operations can't infer final shape to {?,3,?,?} and it becomes {?,?,?,?}
Added 'static' version of reverse-channels to preserve output shape for such cases
It can be changed in future if operations will be able to calculate shape on 'validate' phase
* Removed 'inline' Preprocessing API
Even though this API provided a way to specify all pre/post-processing in one line - it was considered inconvinient
With 'getters' API preprocessing code looks more clear for user, so old' inline' API is removed
* Fix pyopenvino build issues
* Update after merged PR#8717
- PrePostProcessor takes 'function' argument in constructor
- PrePostProcessor::build() doesn't take any function anymore
- PrePostProcessor::input() method to get reference to input
- PrePostProcessor::output() method to get reference to output
- InputInfo - add getters of tensor, preprocess, network
- OutputInfo - add getters of tensor, preprocess, network
Samples:
ClassificationSampleAsync - use new getters
Inference engine:
- Use new getters in ie_network_reader.cpp
TODO: Consider removal of builder-like API in PrePostProcessor, InputInfo, OutputInfo
* Preprocessing: convert_layout<std::vector<uint64_t>> implementation
User is able to use this version without specifying layout explicitly
Same version of convert_layout is added for post-processing
Added usage of new convert_layout to ie_network_reader
* Fix review comment
* NV12 Ref impl: Align with Legacy NV12 conversion
Little-endian tricks are completely not needed finally
Basic tests of OV20 preprocessing vs Legacy preprocessing:
- Mean/Scale
- Resize (Linear vs Bilinear)
- NV12 color conversion
* Register Template plugin in legacy core before CNNNetwork compliance test
NV12: round to nearest integer for 'u8' mode
Fix preprocess-reference NV12 tests (swap U & V)
* Decreased default threshold and use random distribution for inputs generation
* Added tests RefImpl vs OpenCV - NV12 color conversion
Added CPU accuracy tests + nightly (including all RGB color combinations)
* Fix build issue after rebase
* Remove test code
* Fix comments
Disable OpenCV tests on CI (some machines can't load opencv_imgproc during test)
* Pre-process:
- Implicit conversions for element type and layout
- 'convert_element_type' with default argument to network
- Convert_element_type - don't add ops if dst and src types are same
- Convert_layout - don't add ops if dst and src layouts are same
- Custom step - use Output<Node> instead of shared_ptr<Node>
- Support of addressing input by tensor name
Post-process:
- Avoid duplication of tensor names after post-processing
* Fixed IE tests
* PrePostProcessor.output() - first implementation of post-processing
Supported convert_layout, convert_element_type and custom operations
* Fix review comments
* Added test for pre and post processing together
Fix clang-format
* Move 'validate_and_infer_types' before post-processing
* # Conflicts:
# docs/template_plugin/tests/functional/op_reference/convert_color_nv12.cpp
# inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convert_color_nv12.cpp
# inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convert_color_nv12.hpp
# inference-engine/tests/functional/shared_test_classes/src/single_layer/convert_color_nv12.cpp
# ngraph/core/include/openvino/core/preprocess/input_tensor_info.hpp
# ngraph/core/include/openvino/core/preprocess/preprocess_steps.hpp
# ngraph/core/include/openvino/op/nv12_to_bgr.hpp
# ngraph/core/include/openvino/op/nv12_to_rgb.hpp
# ngraph/core/src/op/nv12_to_bgr.cpp
# ngraph/core/src/op/nv12_to_rgb.cpp
# ngraph/core/src/preprocess/pre_post_process.cpp
# ngraph/core/src/preprocess/preprocess_steps_impl.hpp
# ngraph/test/CMakeLists.txt
* Added more test to cover 100% of code
Allow convert element type for 'multi-plane' color format
* Inherit tensor names for 'convert_color'
* Clang
* Fix tests
* Disable 'int8' preprocessing resize test
* Fix review comments
* Add more restrictions and tests for planes sub-names
* 1) Added check for uniqueness of tensor names generated for nodes
Raise error if user's plane sub-name conflicts with some node in a function
2) Added exception safety to preprocess build. Before, when input #2 fail, only one preprocess will be applied to function and it will be corrupted
Exception guard will restore function to original state if exception occurs
* Fix clang-format
Introduced 'absolute threshold' for LayerTests and BaseReferenceTests to consistently catch absolute differences
Previously, when set 'threshold=1.f' it was treated as 'allowed difference is 100%", so there was no way to allow absolute difference as 1.f
* Initial version
* Added 'network' layout to preprocessing info
Moved existing resize tests to template plugin
* Fix clang
* More tests for 'resize' reference implementation + CPU tests + error cases
Coverage is 100%
* Align with new base_reference_test implementation
* Fixed comments
* Add assert to check that desired size is not out of bounds
* CPU: skip failed test
* Reference tests via OpenVINO 2.0
* Migrated to new API acos test
* Fixed other tests compilation
* Fixed tests
* Reference tests use ov::
* Fixed compilation
* Shared preprocessing tests for plugins.
Comparing inference with reference implementation
* Moved evaluate tests to template plugin
* Fixed clang-style
* CPU tests: Set IE precision manually in SetUp. Also allow rounding to integer mismatch
* Added acceptable threshold depending on particular test