* installing-openvino-yocto: fix documentation links
Point to the new Yocto docs website.
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
* installing-openvino-yocto: add step to checkout specific branch
Request users to checkout specific branch of meta-intel where this
version of OpenVINO is available.
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
* Update installing-openvino-yocto.md
Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
* Made changes for CVS-50424
* Changes for CVS-49349
* Minor change for CVS-49349
* Changes for CVS-49343
* Cherry-pick #PR4254
* Replaced /opt/intel/openvino/ with /opt/intel/openvino_2021/ as the default target directory
* (CVS-50786) Added a new section Reference IMplementations to keep Speech Library and Speech Recognition Demos
* Doc fixes
* Replaced links to inference_engine_intro.md with Deep_Learning_Inference_Engine_DevGuide.md, fixed links
* Fixed link
* Fixes
* Fixes
* Reemoved Intel® Xeon® processor E family
* added new topics, changed the intro text
* updated
* Updates
* Updates
* Updates
* Updates
* Updates
* Added yolo-v4-tf and unet-camvid-onnx graphs
* Date for pricing is updated to March 15th
* Fixed CVS-48061
* Reviewed and edited the Customization instructions
* Fixed broken links in the TOC
* Fixed links
* Fixed formatting in the IG for Raspberry
* Fixed dead lock in telemetry
* Refactored TelemetrySender.send function
* Refactored send function implementation to avoid deadlocks
* Unit tests for telemetry sender function
* Added legal header
* Document TensorFlow 2* Update: Layers Support and Remove Beta Status
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Update documentation based on latest test results and feedback
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Remove ConvLSTM2D from supported layers list
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Document Dot layer without limitation
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Address feedback upon DenseFeatures and RNN operations
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Do a grammar correction
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Do a grammar correction based on feedback
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Allow the second output of CTCGreedyDecoderSeqLen to be nullptr in cases when it is not used but calculated in the Myriad plugin. In this case, parse the second output as FakeData
* It is a cherry-pick of #4652
* Update the firmware to release version
* Add documentation on how to convert QuartzNet model (#4422)
* Add documentation on how to convert QuartzNet model
* Apply review feedback
* Small fix
* Apply review feedback
* Apply suggestions from code review
Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>
Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>
* Add reference to file
Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>
* Added info on DockerHub CI Framework
* Feature/azaytsev/change layout (#3295)
* Changes according to feedback comments
* Replaced @ref's with html links
* Fixed links, added a title page for installing from repos and images, fixed formatting issues
* Added links
* minor fix
* Added DL Streamer to the list of components installed by default
* Link fixes
* Link fixes
* ovms doc fix (#2988)
* added OpenVINO Model Server
* ovms doc fixes
Co-authored-by: Trawinski, Dariusz <dariusz.trawinski@intel.com>
* Updated openvino_docs.xml
* Link Fixes
Co-authored-by: Trawinski, Dariusz <dariusz.trawinski@intel.com>
* Fix negative axis processing for StaticShapeTopK
* Preserve output names in MergeSubsequentDSROperations
* Do validate_and_infer_types every time it's called in StaticShape* operations. It's needed to infer the correct output type in case it was changed from the last call moment (e.g. the ConvertPrecision pass have been called)
* Updated documentation
* Added documentation for dev package
* Added separate documents for PyPI
Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
* disable and cleanup interp and resample that is covered by interpolate
* QueryState build error C4996 was fixed
Co-authored-by: chenhuwa <chenhu.wang@intel.com>
* deleting a check of order of the input/output descs in ti/loop operations
* added ngraph_reader unit test
* unrolling for Loop operation, fix LowLatency transformation for Loop
* Revert "unrolling for Loop operation, fix LowLatency transformation for Loop"
This reverts commit 7188921ad7.
* fix calculation of memoryoffset shape in 2 cases: after normalization layer (shape can be read from InputDim in loader) and after affincecomponent layer (shape saved in out-size based on weights shape)
* improve comments
* 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.
* [Wheel] Added configuration for openvono-dev
* Added dependency on runtime package
* Added patterns for license files
* Added mo package data
* added AC dependencies
* fix getInputs function in network_helper to get the correct output for nodes with multiple outputs
* removing unnecessary getInputs method as a duplicate of common ngraph API
* Fix uni broadcast add_v6 op
* Add exception for dynamic rank
* Correct axes mapping in Div, Sub, Mul
It commonizes the approach from Add operator.
* Add unit tests to Div, Sub, Mul v6 ops
* Apply constness
* Improve add_v6 unit test readability
* Correct style
* Remove useless or redundant includes
* update license
* remove the first blank lines and undo changes in inference-engine/thirdparty/mkl-dnn
* test commit
* Update license in tools
* Undo changes in api_overview.md
* update ie_api.pyx and set interpreter in hello_query_device
* Written the transformation that replaces 'linear' mode of Interpolate-4 by 'linear_onnx' mode, when the input tensor rank is equal to 4.
* Fixed BOM-file.
* Fixed copyright year.
* Added message into assert.
* Small fix.
* Added rpath for plugins
* Corrected dll pathes for PIP
* Fixed plugin install names
* Put libs to the sub-package
* Corrected libraries path according to the new location
* Added download and home page urls
* draft - looks good, need merge with other branch
* apply suggestions from PR
* apply suggestions from PR
* add unit test - NotValidInputOrOutput
* rephraze equal for constant
* cleanup all TODOs
* Try to fix TI
* try to satisfy PR comments
* fix spelling
Co-authored-by: Patryk Elszkowski <patryk.elszkowki@intel.com>
* Add tests which reproduces issue
* Fix Output Names in StridedSlice optimization
* Fix codestyle
* Add check if at least one StridedSlice has Result operation as a consumer
* Replaced ie::NetPass::ConvertPrecision with ngraph::ConvertPrecision
* Fixed case with wrong behavior in merge_subsequent_dsr_operations.cpp
* Remove NGRAPH_RTTI from vpu/ngraph #49823
* [MO][TF] Fixed TFSliceToSlice conversion error on Win, replaced int32_max with ShapeOf, minor correction in comments
* review apply: added create_op_with_const_inputs
* review apply: renamed variables, updated typehints for int64_array, float_array, float32_array
* renamed to correct_ends
* returned back check_op_attrs=True
* Added operation ConvertLike to the MO
* Fixed transformations with Pad which insert Const with pad value of incorrect type
* Added constant folding to ConvertLike operation
* Fixed unit tests for Pad transformations to include ConverLike operations
* Update copyright year
* nGraph code style fix
* Added OV_ITT_SCOPED_TASK for ConvertLike constant folding
* Added script that check IE existance
* Updated install_prerequisites.sh to check and insall IE python dependency
* Execute MOC transformation pipeline in subprocess
* Updated path to offline_transformations.py
* Updated IE dependency search; added libs search support
* Updated install_prerequisites.bat to check IE dependency
* Print warning if MO and IE versions do not match
* Set env before subprocess run
* Add mean and meta info to serialized IR
* Fix pylin import issue
* Update BOM file; added intel headers
* use default serialization; code style fix
* Codestyle
* Added subprocess timeout
* Check e2e status
* Update install_prerequisites.sh logic
* Update MO version to be generated even without cmake execution
* Update install_prereq to extract release version from python
* Simplify pyhton code
* Reduce memory consumtion to its original value
* Added OV find and search logic for windows batch script
* Remove model reading to avoid excess memory consumtption
* IMproved logging messages; simplified code
* Improved warnign message incase when MO and IE versions mismatch
* Fix test import
* Check IE bindings in the beginnig of MO pipeline
* Changed warning message; added RelWithDebInfo path
* Recomendation to build IE from source
* Resolve PR comments
* Apply review comments; Added CheckAPI pass
* Added path to IE local libs
* ModelOptimizer -> Model Optimizer (+IE)
* OpenVINO -> OpenVINO (TM) Toolkit
* Updated install_prerequisites.bat with new logic
* Move offline_transformations.py to back folder; improve warning mesages experience
* Update install_prerequisites.bat
* Move back some unnecessary changes
* Fix BOM
* Disable import errors for pylint
* Fixed grammar in messages
* pylint disable import error
* Final grammar fixes in bat and sh files
* Added TF broadcast_to extractor
* updated Supported_Frameworks_Layers.md
* corrected name
* corrected op name in Supported_Frameworks_Layers.md
* added a space after BroadcastTo in Supported_Frameworks_Layers.md
* 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.
* check bitwise equality before using the threshold method
* use std functions to check float class instead of reinterpret casting
* add unit test with nan f32 const value
* BinaryConvolution specification refactoring.
* Aligh tensor types to current CPU implementation.
* Remove !D & 3D case becuase CPU plugin supports only 2D case.
* Add pad_value to the example.
* Add computation algorithm for mode 'xnor-popcount'.
* Computation formula refactoring.
* Fix typo in the description.
* Added attributes save modes
* Added tensor names to IR
* Reformat code
* Add support for tensor names in MO IR Reader
* Unit tests and code refactoring
* Fixed error
* Code refactoring
* Code refactoring
* Code refactoring
* Error fixed
* Error fixed
* Bug fixed
* Bug fixed
* Additional unit tests and comments
* Small update
* Update fake infer function
* Update names restoring
* optimize imports
* Add support for old-style constants and for commas in reader
* Added dest mode in Fuse Mul
* Update default values
* Fix missed debug info in some specific cases
* Fix a lot of issues with missedand wrong names provoding
* Resolve review comments
* Update test IR's
* Refactor and simplify code
* More simplification
* Remove unneccessary changes
* model-optimizer/mo/utils/ir_reader/layer_to_class_test.py
* Add separate tests for names restoring
* Update copyright year
* Apply review comments
Co-authored-by: Anastasia Popova <anastasia.popova@intel.com>
* Redirect StageDependencies from injected stage to the parent of the injection.
* Change StageDependencyEdge to be Stage<->Stage connection. In fact, it affects only stages order, so it would be more natural (also more convenient) to represent it so.
* Add injectedStageDependencies to InjectionEdge to be able to distinguish those dependencies that were added to hwStage during the injection process and make the revertion correct.
* Changed check for dimension size to be non-negative
* Added unit test for reading model with ShapeOf from scalar and fixed IE IR parser
* Added comment to the test
* Fixed ShapeOfFromScalar test
* Fixed incorrect merge
* Added test for a negative value of "dim" in IR
* 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
* Refactoring FunctionsComparator - extract node comparison part
* try to fix logic and CentOS bulids
* Add negative test for precision
* Use fixed ngraph::descriptor::Tensor type instead template type
* reorganize ngraph_test_utils.cpp
* Cleanup after merge master into branch
Co-authored-by: Patryk Elszkowski <patryk.elszkowki@intel.com>
* Reformulated, intermediate. No positive indices.
* Indices >= 0, depth > 0.
* Added the Types section and a more complicated example.
* Behavior for negative indices is undefined
* Wrap T1 & T2 with *
* Revert mkl-dnn to cae1e0b83
* T1: int32 or int64 only
* Remove linking libonnx from unit-test
* Consider all flavors of protobuf libraries
* Avoid passing on NOTFOUND properties
* Set system deps for mac
* Revert include dirs set up
* fix comparison of constant with short float NAN values
* adjust precision, remove elvises
* more templates
* add ir serialization test with float16 const
* remove unused prototxt
* Removed legacy IE shape infer
* Removed GenericIE operation
* Removed legacy shape infer tests
* Removed legacy test with legacy IE reshape
* Fixed compilation issues related to removal of GenericIE
* Fixed one more compilation issue with clDNN
* Fixed test for reading experimental ops
* Updated tests and make IR Reader to load old experimenal and extension ops as opset6
* Change opset of some ops only if they are currently experimental/extension to avoid situation like opset1::Proposal -> opset6::Proposal
* Removed more legacy code
* Returned back code removed by mistake
* Fixed issues related to incorrect merge with master
* Merge fixes
* Fixed unit tests which starts to fail because now loading the model with unknown operation is failed earlier
* Removed incorrectly added code
Co-authored-by: Evgeny Lazarev <elazarev.nnov@gmail.com>
* DPC++ link error workaround.
OpenVINO C++ program failed to link when DPC++ compiler is used.
'make_shared_blob' causes 'unresolved external symbol' error on linking.
Commented out some __clang__ specific directives to workaround the issue in "ie_blob.h".
* DPC++ compatibility issue fix#2
1. Removed type-by-type template class definition for __clang__.
2. Modified TBlob() destructor. The 'unresolved reference' error occur again if I left 'virtual ~TBlob();' only. It seems it needs to be 'virtual ~TBlob() {};'.
* DPC++ compatibility fix#3 - Add DPC++ conditional code
Uses '__SYCL_COMPILER_VERSION' predefined macro to check if the compiler is a DPC++ or not.
Added conditional directive to switch code based of the detected compiler.
NOTE: User program must include <CL/sycl.hpp>, or the '__SYCL_COMPILER_VERSION' macro won't be defined and this fix won't take effect.
* DPC++ compatibility issue fix#4
Changed from #ifdef to #if + logical formulas.
* DPC++ compatibility issue fix#5
Added compiler check logic in src/ie_rtti.cpp
* DPC++ Compatibility issue #6 - ie_parameter.cpp
Added compiler check macro for DPC++ to ie_parameter.cpp as well.
Co-authored-by: Yasunori Shimura <yasunori.shimura@intel.com>
* Added result rename operation
* Optimize imports
* Added ResultRename to package_BOM
* ResultRename moved to the end of back phase, code refactoring
* Revert incorrect changes
* Optimize imports
* Added comments and optimized imports.
This issue relates to multi-device mode.
While we are trying to allocate a graph on one of the devices we should check memory capacity only for the corresponding device, not for the last opened as far devices may have different memory capacity or the latest opened device may have still not sent its attributes (including memory capacity)
* Updated install_NEO_OCL_driver.sh & install_openvino_dependencies.sh with rhel8 case
* install_NEO_OCL_driver: Fixed conditional
* script: Updated with actual revisions
* XmlDeserializer relay on parameter/result (input/output) index which is reported during inserting to function
Xml parameter/result order is irrelevant now.
* drop stack usage - just single class member
* try to fix CentOS build
* fix after review
* Drop std::map to custom structure
* reorder layers in TI in test IR which failed on current master
Co-authored-by: Patryk Elszkowski <patryk.elszkowki@intel.com>
* fixed: StrideSlice/Crop was broken when crop axis != dim.size() - 1 & added support for tensor dim > 2
fixed: clamp had hard coded upper & lower boundary to -50/50
fixed: InsertIdentityLayerPass was adding not necessary identities that was leading to exception when 2 identities was added to convolution output
fixed: SubstituteScaleShiftBroadCastPass caused invalid input tensor dimension overwrite - instead of overwrite currently reshape is injected
* updated copyright header dates
* updated copyright date
* fixed braces not at the end of line
* fixed braces in if else sequence
* shortened line length
* fixed issues reported in review
* fixed test - model in test assumed clamped range <-5,5> however code had hard coded value <-50,50>, which test assumed as correct result
* fixed smoke_MemoryEltwiseReshapeConcatTest/MemoryEltwiseReshapeConcatTest
* [GNA] Added test for crop 4d
Co-authored-by: Andrey Dmitriev <andrey.dmitriev@intel.com>
* Implements test for CTCGreedyDecoderSeqLen layer in Myriad plugin.
* Changes the way CTCSeqLen operation is generated. Moved random generation of SeqLen input from makeCTC function to the test. Made test to clamp test's parameters to be in valid range.
* SubGraphOp shape inference and cloning fixed. WAs deleted
* Fix naming in OneHot->IE transformation
* Check for number of incomming/outcommit HostTensors and check for nullptrs in evaluates and bound evaluators
* move validate_host_tensor_vector into ngraph namespace
* RT propagation
* style
* Adding of partial support of MVN-6 operation to VPU Plugin (support restricted by MVN-1 interface)
* Disabling of MVN-6 decomposition for VPU Plugin
* Enabling of test cases for this operation
* Disabling of deprecated MVN tests while investigation is go on
* Draft implementation of the telemetry sender utility
* Examples of sending telemetry from the MO
* More statistic about the model.
* Intentional broken file to fail Mask-RCNN ONNX model conversion
* Added joined list of ops used
* Added requests to the requrements file and update BOM to include necessary files related to telemetry
* Send telemetry alwasys
* Refactored usage of GUID usage in the telemetry
* Enabled sending telemetry always
* Simplified function "TelemetryBackend.send"
* Use other approach to send information about session to GA
* Added automatic registration of the telemetry backends and allow to choose it during the telemetry class instantiation
* Added "requests" as a requirement. Wrapped usage of requests module to not crash the app
* Added timeout for sending data to GA. Increased the queue size to 1000
* Finalize Telemetry class implementation
* Do not fail MO if non-critical component is not installed and updated Telemetry GA with the default property
* Added sending version to a separate event
* Use default TID to send the data
* Set lower bound for the requests module which does not contain vulnerabilities
Co-authored-by: Evgeny Lazarev <elazarev.nnov@gmail.com>
* Removed legacy IE shape infer
* Removed legacy shape infer tests
* Updated tests and make IR Reader to load old experimenal and extension ops as opset6
* Change opset of some ops only if they are currently experimental/extension to avoid situation like opset1::Proposal -> opset6::Proposal
Co-authored-by: Evgeny Lazarev <elazarev.nnov@gmail.com>
* remove NodeConverter for Interpolate and ScaleShiftIE
* add SpecificCreators for Interpolate and ScaleShiftIE
* add commented lines to check if tests will pass
* remove comments to check if tests will pass
* checking if tests are avaiable for ResampleV2
* remove NodeConvertor for ExecutionNode
* remove nodeCovnertor for ResampleV2 and add SLT for serialization
* remove shufflechannels op from node converter
* enable visitor api for resamplev2
* remove nodeconverter class
* add missing newline
* remove interpolate sslt- sporadic fails
* remove unnecessary interpolate specific creator
* Add interpolate specific creator
Co-authored-by: blesniewski <bartosz.lesniewski@intel.com>
* Added info on DockerHub CI Framework
* Feature/azaytsev/change layout (#3295)
* Changes according to feedback comments
* Replaced @ref's with html links
* Fixed links, added a title page for installing from repos and images, fixed formatting issues
* Added links
* minor fix
* Added DL Streamer to the list of components installed by default
* Link fixes
* Link fixes
* ovms doc fix (#2988)
* added OpenVINO Model Server
* ovms doc fixes
Co-authored-by: Trawinski, Dariusz <dariusz.trawinski@intel.com>
* Updated openvino_docs.xml
* Updated Compile tool documentation, added extra description, removed FPGA related info
* Integrated review comments
Co-authored-by: Trawinski, Dariusz <dariusz.trawinski@intel.com>
* Commit.
* Written the structure InfoForLinearONNXMode5D that contains info to perform interpolation in 'linear_onnx' mode for 5D tensors.
* Started to write the method get_info_for_linear_onnx_mode5D() that returns info for calculations of 'linear_onnx' mode in 5D case.
* Written the method InterpolateEvalHelper::get_info_for_linear_onnx_mode5D().
* Code style fix.
* Started to write calculation of 5D case of 'linear_onnx' mode.
* Written the method void InterpolateEval<T>::linear_onnx5D_func(const T* input_data, T* out).
* Added dispatching of 4D/5D cases of the mode 'linear_onnx'.
* Fixed code style.
* Some fixes.
* Code style fixes.
* Now linear_onnx_func throws an exception for incorrect input rank.
* Code style fix.
* Started to write tests for evaluation of 'linear_onnx' mode in the 5D case.
* Added first test for linear_onnx 5D.
* Small fixes.
* Written tests for evaluation of Interpolate-4 in linear_onnx 5D case.
* Some code style fixes.
* Small fix.
* Corrected documentation.
* Started to write generic implementation of 'linear_onnx' mode, for any ranks.
* Written the draft of a generic (for all ranks) implementation of 'linear_onnx' mode.
* Small fixes.
* Small fix.
* Small fix.
* Small fix.
* Code style fix.
* Small fix.
* Code style fix.
* Some fixes.
* Some fix.
* Small fix.
* Small fix.
* Code style fix.
* Added check for axes correctness into a generic implementation of the 'linear_onnx' mode.
* Now 5D case of the 'linear_onnx' mode is calculated using generic function.
* Code style fix.
* Deleted unused variable.
* Added debug prints.
* Small fix.
* Some fixes.
* Code style fix.
* Now all ranks are processed by a generic implementation in the 'linear_onnx' mode.
* Deleted name of missed test.
* Deleted 4D case implementation of the 'linear_onnx' mode.
* Reverted change in tests.
* Added needed 'const' modifiers and added a comment about the variable 'axis_idx_offset'.
* Small fixes.
* DeformableConvolution specification refactoring.
* Add ticks to types and layouts.
* Removed 1D and 3D Convolution type.
At the current moment CPU plugin and MXnet implemenatations supports
only 2D case.
* Fix examples section.
* Fix offests input layout description.
Makes DTS for BinaryEltwise produce empty output tensor in case if at least one input is empty. As criteria for empty tensor ReduceMin is used (assuming all shape's values are non-negative).
Tests are changed accordingly. Trying to add a new test case on inference with empty input, reference version failed, so those tests are left unchanged.
* remove cropie op from node converter
* remove eltwise from node converter, enable visitor api
* remove ceiling op from node converter
* remove powerie, reluie, fullyconnected from node converter
* remove unused node converters
* join relu and reluie specific creators
* add missing eltwise types to node conversion
* fix eltwise type
* change power ops scale parameter passing for better precision
* Reference implementation for Proposal, enable CPU SLT
* code style fix
* add type prop test for invalid anchor count
* add unit test
* fix shapes in attribute test
* temp workaround- disable maring end of boxes list
* Disable CPU smoke test- spec misalignment
* code style fixes
* add some details to the specification
* disable myriadx proposal slt
* review changes, using usigned int and size_t
* improve proposal op shape inference to cover dynamic too, add unit test coverage
* remove unused variable in test body
* remove batch size in tests where its not used
* add post nms topn initialization in tests where it was missing
* review comments
* style fix
* style fix 2
* add tests, remove unused variables, change shape inference checks
* style fix
* add input tensors type checks and test coverage
* align input type in attribute and ngraphreader tests to match specification
* fix wrong dimension in error message
* proposalv4 ref impl
* enable single layer and unit tests for proposalv4 ref impl
* align output termination with cpu, enable cpu slt
* custom slt compares to detect less-than-predicted number of boxes
* custom slt compares to detect less-than-predicted number of boxes
* Clarify output termination in spec
* review comments
* smaller input data for unit tests
* add check for batch_dim being static
* disable gpu slt for proposal
* test data style fix
* test data style fix 2
* add type section to specification
* shape inference improvement
* multiply expected 1st dim in tests by post_nms_topn
* add checks and testcases for dynamic ranks
* indentation, review comments
* reduce code redundancy in ref implementation
* remove comment
* Fix typo in proposal1 spec
* Fix typo in proposal4 spec
* Update install_prerequisites.bat
Removed warning language to show that you can optionally install protobuf to speed up model conversion. It should not be a warning.
* Update install_prerequisites.bat
* 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.
* disable and cleanup interp and resample that is covered by interpolate
* [BF16] Deconvolution was enabled
* Deconvolution tests were added
* Copyright year was fixed
* Friendly name usage for tests
* Test inherited from CPUTestsBase
* Fusing tests were added
* oneDNN was updated
* Gemm and 1x1 were added with tests
* Number of channels not aligned on vector length was done for blocked cases
* DW deconvolution case was added with tests
* oneDNN changes for BF16 deconvolutions were squashed
Co-authored-by: chenhuwa <chenhu.wang@intel.com>
Loop operation constructor call is not sufficient to
create Loop operation, such methods as set_special_body_ports,
set_sliced_input and other may need to be called as well.
set_special_body_ports must always be called since it specifies
required attribute body_condition_output_idx. If it has not been
done before validate_and_infer_types call - exception will be thrown
that this required attribute is not set.
Recently, validate_and_infer_types call has been added to
set_sliced_input implementation. As a result, if Loop has sliced
inputs, they must be specified not earlier set_special_body_ports,
otherwise program will fail.
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
- Created emitters for jitted load and store and apply to MVN node
- MVN template function removed
- Optimized tiles processing in MVN node implementation
* remove if statement which checks if there is no dynamic shape
* remove reshaping for genericIE operation
* back to the previous version with reshape
* remove blank space
* add plugin_api to cmake in order to use generic_ie.hpp in serialize file
* add SLT for serialization for NonMaxSupperesion operator
* revert the removal of if check for dynamism
* remove the left over from CMakeLists
* fix CmakeLists removal fail
* remove redundant parenthesis
* add test which failed in the first place and fixes to it
* fix wrong spaces
* ONNX Importer changes
* Unit tests
* Style
* Don't set tensor names for result output tensor
* Review fx I
* fix
* Style
Co-authored-by: Vladislav Volkov <vladislav.volkov@intel.com>
* Add missing header for std::tolower
Missing header causes syntax error when compiling for Windows using Visual studio 2017. Closes#4155
* Reordered STL header includes in order to pass style check
* Enable node attributes comparing in SLT
* Add values of compared values to error message
* Switch from op version to set
* Test for Constant node
* Compare clamp min max attribute tests
* try to fix CentOS build
* use HasSubstr matcher from gMock
* add more tests
* Add DummyConstan op to check if validation handle different types
* use new Function comparison API
* Add test for unsupported type
Co-authored-by: Patryk Elszkowski <patryk.elszkowki@intel.com>
* Add python api for CTCGreedyDecoder
* Fix code style
* Fix unit test
* Fix code style
* Fix unit tests
* Fix python tests
* Fix python tests
* Fix python tests
* Fix according to code review
* fix
* Fix api
* fix unit tests
* Fix unit test
* Fix python api
* Commit.
* Small fix in validation of the nGraph operation ExperimentalDetectronPriorGridGenerator.
* Fixes in the validation of the nGraph operation ExperimentalDetectronROIFeatureExtractor.
* Added more tests for shape infer function of the nGraph operation ExperimentalDetectronPriorGridGenerator.
* Code style fix.
* Added more tests for shape infer function of the nGraph operation ExperimentalDetectronROIFeatureExtractor.
* Fixes in the test type_prop.detectron_roi_feature_extractor_intervals_1.
* Some code style fixes.
* Started to rewrite the test type_prop.detectron_roi_feature_extractor_intervals_1 as a parametrized test.
* Added some tests to parametrized test of ExperimentalDetectronROIFeatureExtractor.
* Some code style fixes.
* Small code style fix.
* The test type_prop.detectron_roi_feature_extractor_intervals_1 was rewritten as a parametrized test.
* Deleted the method run_roi_feature_test().
* All type_prop tests for ExperimentalDetectronROIFeatureExtractor are parametrized.
* Added parametrized variant of the test detectron_grid_generator_dynamic_shapes_intervals_1.
* Small fix.
* Some changes.
* Some fixes.
* Now we have two parametrized tests of ExperimentalDetectronROIFeatureExtractor shape infer, not one.
* Code style fix.
* Deleted duplicate of tests.
* Yet another test is parametrized.
* Small fix.
* Deleted some duplicates of tests.
* Add IntelSEAPI
* Fixed Windows build
* Fixed Windows
* Removed ETLRelogger
* Fixed linux compilation
* Fixed macOS build
* Small fixes
* Enabled OV codestyle
* Removed Android support
* Update license
* Fixed compilation for Windows
* Removed parse_jit function
* Fixed script for header generation
* Remove bandit hints
* Moved itt collector to thirdparty
* Try to fix hits for Windows
* Removed more hits
* [IE][nGraph]: Enables const overload for SubGraphOp::get_function
* [IE][nGraph]: Deletes SubGraphOp copy constructor
SubGraphOp has clone_with_new_inputs function for
deep coping, while default copy constructor does
some kind of shallow one. In order to avoid
confusion, copy constructor is deleted since it's
unused anyway.
* [IE][nGraph]: Enables protected Loop copy constructor
Additional clone method is introduced in order to reuse
Loop::clone_with_new_inputs implementation.
Loop::clone_with_new_inputs implementation at the same
time is refactored, since there were extra job that
does not needed to be done there.
* [IE][VPU][nGraph]: Introduces StaticShapeLoop
StaticShapeLoop is a class derived from Loop
to override validate_and_infer_types method
in order to propagate upper-bounds through the
function instead of dynamic tensors.
It uses maximum_value estimation to get
upper-bound for iterations count in case if
it is dynamic.
* [IE][VPU][nGraph]: Refactors function validators in DTS
The same approach (nGraph operation to functor map) as
for DTS shape functors is used since validation is
operation type specific.
* [IE][VPU][nGraph]: Enables DTS for Loop
Only loops with inputs dynamic in batch
(iterations count) and static body are supported.
* remove variadicsplit op from layer creator
* remove reorgyolo op from layer creator
* remove psroipooling op from layer creator
* remove empty layer creator list and not used creator
* missing endline
* add reorgyolo case to ops missing in opset1
* remove trivial creators
* Move Convolution and ConvolutionBackpropData ref impls into separate files.
* Add convolution unit tests.
* New convolution reference implementation.
* Remove unused convolution ref impl argument.
* Fix style.
* Revert "Remove unused convolution ref impl argument."
This reverts commit 739065d0d0.
* WA for arm-plugin: additional include with ConvolutionBackpropData.
* Style format in Convolution SLT CPU instantiation.
* Add 1D Convolution SLT CPU tests.
* Add Convolution Serialization SLT.
* Update source banners with 2021 date.
* Specification review.
* Readability improvement in padding detection.
* Refactoring regarding Tensor usage.
* Iteration over tensor slices made more readable.
* Code refactored to use only one convolution implementation.
3D convolution is used to compute also in 1D & 2D case (parameters,
inputs and filters shapes are adjusted accordingly).
* Removed Tensor abstraction.
* Name unnamed namespace as convolution_details.
* Refactoring: replaced std::next + negative index with std::prev.
* Specification refactoring.
* Revert "Name unnamed namespace as convolution_details."
This reverts commit cea526ec49.
* Added new convolution() overload.
* Fix legacy convolution() overload (needed for kmb-plugin).
* Reduced number of template type arguments in convolution ref impl.
* Added 'output' section in Convolution spec.
* Remove floating round type configuration.
LCA (Least Common Ancestor) search procedure must
take sub-graph without external connections to be able
to count depths of nodes. Previously, just 2 steps of
removing external connections were executed (1 time for
top sub-graph and 1 time for bottom one). In case if
originally top sub-graph had no external connections,
but bottom one had, after removing external nodes from
bottom sub-graph, some of the nodes from top sub-graph
could became external. In order to prevent that, removing
external connections must always be a loop until no
external connections found in both top and bottom sub-graphs.
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
* Refactor install_openvino_dependencies script: extra options and cleanup
* install_dependencies: added more python tools
* install_openvino_dependencies: extra OS checks
Verify consistency for future edits
* install_openvino_dependencies: clarify messages
* Updated container passes to return false to avoid excess function validation
* Added support for nested GraphRewrite registration
* Updated passes to use MatcherPass; Reorganized CommonOptimizations pipeline
* Disable node validation when graph is not modified
* Add Loop serialization, SLT and regular test.
* Remove loop test from SerializationTensorIteratorTest, add bin for test loop xml.
* Remove metadata section from loop xml file.
* Remove m_num_iterations initialization, it is done during validate_and_infer_types().
* eliminate Unsqueeze+Gather pair, when Gather gathers data by 1 dimension which was previously added by Unsqueeze which is actually doing nothing.
* calculate K only once in StaticShapeTopK. The problem happens when we have ShapeOf->Concat->ReduceMin subgraph for K evaluation. If we have a pretty small input size, the value that we received from ShapeOf may be less than one that it is concatenated with (e.g. ShapeOf 283 vs const 300), so ReduceMin returns 283. After ShapeOf elimination we don't have a chance to propagate 283 so we get 300 as a result and shape inference fail then. There are no problems with bigger input sizes just because ShapeOf always propagates value >300 and there are no such mismatch.
* fixes for TBB tmp location:
- DL_SDK_TEMP path is not normalized, that leads to paths check mismatch in CMake conditions
- TBB is not downloaded again in a case tmp location is cleaned up and build restarted (TBB_DIR and TBBROOT are cache variables)
* use reset_deps_cache & update_deps_cache for TBB_DIR var.
* single reset_deps_cache call
* Demo script improvements.
- Detect Visual Studio version installed into not-default location
- Fix change directory for a case VS and OpenVINO resideds on different disks
- Align indents
* fix indents
* remove equal op from layer creator
* remove greaterequal op from layer creator
* remove lstmcell op from layer creator
* remove psroipooling op from layer creator
* add missing newline
* alignment
* add override method for int since attribute keep_top_k from detection_output requires it
* remove if statement to prevent gtest tests duplicate names for avg_pool
* add single layer tests for seriazliation for AvgPool, PriorBoxClustered and DetectionOutput operators
* add apropiate styling of the code
* Add on_adpater() implementation for special body parts.
* Remove NodeConverter and LayerCreator for Loop. Add WA for different number of inputs during Loop init by constructor and visit_attributes().
* Format files.
* Implement use case external_port_id=-1 for output port_map,change API for map_type_in_function.
* Replace GetStrAttr() with GetInt64Attr().
* Correct WA for input_offset when using visitorAPI. It shall search all input descriptions for duplicated indexes.
* Apply proper file format.
* Throw exception when input_offset < 0.
* Add more detailed description for input_offset WA.
* rt_info serialization for ngraph::Node
* add test for it info serialization
* try to fix centos build
Co-authored-by: Patryk Elszkowski <patryk.elszkowki@intel.com>
* Commit.
* Written the header file for the nGraph operation ExperimentalDetectronTopKROIs.
* Written an implementation file of the nGraph operation ExperimentalDetectronTopKROIs.
* Small fix.
* Added the nGraph operation ExperimentalDetectronTopKROIs into the table of ops of opset6.
* Written the header file for the nGraph operation ExperimentalDetectronGenerateProposalsSingleImage.
* Code style fix.
* Written cpp-file of the nGraph operation ExperimentalDetectronGenerateProposalsSingleImage.
* Now the operation ExperimentalDetectronGenerateProposalsSingleImage is read as nGraph operation.
* Code style fix.
* Fix in ngraph/ops.hpp
* Added NGRAPH_OP_SCOPE to the nGraph class ExperimentalDetectronGenerateProposalsSingleImage.
* Added NGRAPH_OP_SCOPE to the nGraph class ExperimentalDetectronTopKROIs.
* Code style fix.
* Small fix.
* Added NGraphReshapeTests of ExperimentalDetectronGenerateProposalsSingleImage when ExperimentalDetectronGenerateProposalsSingleImage is considered as opset6 operation.
* Changed copyright year to 2021.
* Deleted the method ExperimentalDetectronTopKROIs::set_max_rois.
* Deleted redundant virtual.
* Now ExperimentalDetectronTopKROIs::validate_and_infer_types() handles all cases when input 0 and input 1 have static/dynamic rank independently.
* Code style fix.
* Small fix.
* Started to write shape infer tests for the nGraph operation ExperimentalDetectronTopKROIs.
* Written shape infer tests for the nGraph operation ExperimentalDetectronTopKROIs.
* Code style fix.
* Added checks of input shapes into ExperimentalDetectronGenerateProposalsSingleImage::validate_and_infer_types(). Started to write tests for ExperimentalDetectronGenerateProposalsSingleImage::validate_and_infer_types().
* Small fix.
* Fixes in ExperimentalDetectronGenerateProposalsSingleImage::validate_and_infer_types(). Written draft tests for ExperimentalDetectronGenerateProposalsSingleImage::validate_and_infer_types().
* Code style fix.
* Fixes in reshape tests for ExperimentalDetectronGenerateProposalsSingleImage.
* Added Doxygen documentation to the nGraph operation class ExperimentalDetectronGenerateProposalsSingleImage.
* Deleted methods validate_scores_shape and validate_deltas_shape of op::v6::ExperimentalDetectronGenerateProposalsSingleImage.
* Deleted methods validate_input_rois_shape and validate_rois_probs_shape of op::v6::ExperimentalDetectronTopKROIs.
* Added class descriftion for nGraph operations ExperimentalDetectronTopKROIs and ExperimentalDetectronGenerateProposalsSingleImage.
* [MO] Implement TensorFlow 2 While support in MO
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Add extractors for both While and StatelessWhile and do minor changes
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Improve update_body_graph function and manage graph names properly
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Fix a map for original name of parameters from body and cond
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Implement draft version of support of TF2 Keras RNN
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Implement Keras LSTM and GRU support in MO
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Improve code for Keras RNN support
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Finalize implementation of TF2 Keras RNN support in MO
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Apply the first part of the comments after review #1
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Avoid use of explicit values of port indices in the transformation
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Finalize code after the first-round review
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Apply comments after the second-round review
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Add extra op clone to have default inputs/outputs set.
* Call `validate_and_infer_types` after clone for TensorIterator and Loop
* Add gtest to check if default values works with dynamic shapes
* Apply suggestions from PR.
Co-authored-by: Patryk Elszkowski <patryk.elszkowki@intel.com>
* ConvertLike: Develop reference implementation
* ConvertLike: Enable single layer tests for GPU plugin
* ConvertLike: Enable bf16 precision for evaluate method
* ConvertLike: Add unit tests
* ConvertLike: Add dynamic shape test case
* ConvertLike: Remove unnecessary ngraph namespace and using declaration for v1::ConvertLike
* ConvertLike: Simplified reference::convert by using std::enable_if
* Use actual blobs type to get nGraph element type,
when generating inputs and calculating reference results.
It will allow to run tests with `undefined` preset and
use real type, returned from the device to generate and process input.
It also fixes the case with several inputs with different type.
* Extend `convertOutputPrecision` function to fully support
conversions from/to fp16/bf16 types.
The device might return blobs in that formats, so they need to be
supported by the testing framework.
* Commit.
* Written the header file of the nGraph operation ExperimentalDetectronROIFeatureExtractor.
* Started to write cpp-file for the nGraph operation ExperimentalDetectronROIFeatureExtractor.
* Deleted in_ports_count attribute for the MO operation ExperimentalDetectronROIFeatureExtractor.
* Written validate_and_infer_type() method of ngraph::op::v6::ExperimentalDetectronROIFeatureExtractor.
* Code style fixes.
* Code style fixes.
* Small fixes.
* Code style fixes.
* Now operation ExperimentalDetectronROIFeatureExtractor is read as nGraph operation ExperimentalDetectronROIFeatureExtractor.
* Implemented op::v6::ExperimentalDetectronROIFeatureExtractor::clone_with_new_inputs().
* Added macro NGRAPH_OP_SCOPE to the cpp-file of the nGraph operation ExperimentalDetectronROIFeatureExtractor.
* Fixes in some tests.
* Code style fix.
* Fixed yet another test for ExperimentalDetectronROIFeatureExtractor.
* Added tests for reading ExperimentalDetectronROIFeatureExtractor as operation from opset6.
* Added more test for reading ExperimentalDetectronROIFeatureExtractor as operation from opset6.
* Started to write shape infer tests for the nGraph operation ExperimentalDetectronROIFeatureExtractor.
* Corrected ngraph/test/CMakeLists.txt.
* Small changes.
* Code style fix.
* Small fixes.
* Added ctor of ExperimentalDetectronROIFeatureExtractor with NodeVector as argument.
* Added setting the attribute in_ports_count when the MO operation ExperimentalDetectronROIFeatureExtractor is creating in the MO transformation ONNXMaskRCNNTransformation.
* Added shape infer for the second output of the nGraph operation ExperimentalDetectronROIFeatureExtractor.
* Written shape infer tests for nGraph operation ExperimentalDetectronROIFeatureExtractor (case when input shapes are partially dynamic).
* Small fixes.
* Code style fix.
* Deleted redundant &expected_channels.
* Code style fix.
* Small refactoring.
* Small fixes.
* Small changes.
* Small fixes.
* Deleted attribute distribute_rois_between_levels of ExperimentalDetectronROIFeatureExtractoe.
* Deleted attribute preserve_rois_order of ExperimentalDetectronROIFeatureExtractoe.
* Deleted attribute image_id of ExperimentalDetectronROIFeatureExtractoe.
* Now MO generates attribute 'aligned' of ExperimentalDetectronROIFeatureExtractor only with values 'true' or 'false'.
* Small fix.
* Fix in the conversion of the attribute 'aligned' of MO operation ExperimentalDetectronROIFeatureExtractor to string.
* Tabs were replaced by spaces in some XMLs.
* Tabs were replaced by spaces in ngraph_reshape_tests.cpp.
* Fixed copyrights.
* Applied small patch to IREngine from PR https://github.com/openvinotoolkit/openvino/pull/3814.
* Tabs were replaced by spaces in cnn_ngraph_impl_tests.cpp.
* op::v6::ExperimentalDetectronROIFeatureExtractor::validate_and_infer_types() was rewritten using operator & for channels.
* Added tests for input shapes of op::v6::ExperimentalDetectronROIFeatureExtractor in the case when inputs shapes consist of intervals.
* Fixes in test type_prop.detectron_roi_feature_extractor_intervals.
* fix initialization bug of spatial_scale in tests (affected input generating)
* fix input generating for bilinear ROI Pooling
* correct parameters for myriad tests:
* myriad plugin does not support batch for this layer;
* decrease threshold since myriad uses fp16 calculations
* Support DTS for GatherElements
* Extract GatherBase to a common part
* Introduce tests on inference
* Introduce tests on function comparing
* Disable failing tests
* Calling SetPrecission on cnn network outputs
* added tests
* get_output_name refactor
* add missing test file
* run tests on all backends (or disable if backend is not available)
* fixed tests
* fixed TestEngine
* Add on_adapter(Function) for serialization.
* Add port_map and back_edges serialization.
* Add 2 unit tests for TI serialization.
* Convert lambda expression into function pointer.
* Add single layer test for tensor iterator.
* Add limitation for file name length during serialization.
* Add file name length limitation for Serialize().
* Add WA for LSTMCell v0 in serialize class, new test class for TI serialization with dynamic weights, add bin path to SerializationParams, replace call to ngfunction_2_irv10 with visitor.on_attribute().
* Remove hacks for TI from ngfunction_2_irv10(), validate buffers in port_map.
* Changed year in new added test files.
* Add check for version of LSTMv0 WA, add assert for model read from file.
* Remove append_copy for xml Function, changed comparison for LSTMvo WA.
* Update second WA for LSTMCell v0 with version check.
* Remove find_child when searching for port_map and back_edges.
Before this patch constant with weights could be not detected if
it wasn't directly connected to Conv/Deconv layer.
Now weights always uses common data format (bfzyx) in the plugin which is
converted into weights format later (goiyx, oiyx, etc), so weights sub-graph
can now contain anything
* Commit.
* Started to write nGraph operation ExperimentalDetectronDetectionOutput. Written draft of the header file.
* Written draft of the cpp-file for nGraph operation ExperimentalDetectronDetectionOutput.
* Small fix.
* Added reading of ExperimentalDetectronDetectionOutput as nGraph operation.
* Some fix.
* Unregistered old shape infer function of the operation ExperimentalDetectronDetectionOutput.
* Written the header file for the operation ExperimentalDetectronPriorGridGenerator.
* Small refactoring.
* Small fix.
* Added set_output_size(3) into op::ExperimentalDetectronDetectionOutput::validate_and_infer_types().
* Added check for number of inputs of ExperimentalDetectronDetectionOutput.
* Reverted some changes.
* Changed IR for ExperimentalDetectronDetectionOutput serialization test.
* Written cpp-file of nGraph operation ExperimentalDetectronPriorGridGenerator.
* Small fix.
* Some fixes.
* Fixes in type and shape infer functions of the MO operation ExperimentalDetectronDetectionOutput.
* Now ExperimentalDetectronPriorGridGenerator is readed as nGraph operation.
* Fixed the infer function of the nGraph operation ExperimentalDetectronPriorGridGenerator.
* Started to write tests for the shape infer function of the nGraph operation ExperimentalDetectronDetectionOutput.
* Written the draft of the test for the shape infer function of the nGraph operation ExperimentalDetectronDetectionOutput.
* Small fix.
* Fixed ngraph/test/CMakeLists.txt.
* Started to write tests for the shape infer function of the nGraph operation ExperimentalDetectronPriorGridGenerator.
* Now the shape infer function of the nGraph operation ExperimentalDetectronPriorGridGenerator performs correctly case dynamic input shapes with static ranks.
* Continued to write test for the nGraph operation ExperimentalDetectronPriorGridGenerator.
* Small fixes.
* Written tests for the shape infer function of the nGraph operation ExperimentalDetectronPriorGridGenerator (case when input shapes are partially dynamic).
* Added test for reading ExperimentalDetectronDetectionOutput as an operation from opset6.
* Some fixes.
* Added some debug outputs.
* Deleted inserted debug output.
* Small fixes.
* Small fix.
* Small fix.
* Small change.
* Added comments to attributes of ExperimentalDetectronDetectionOutput.
* Reverted changes.
* Deleted shape infer for output port 3.
* Small fixes.
* Deleted redundant keyword 'virtual'.
* Deleted redundant usings in header files of nGraph operations ExperimentalDetectronDetectionOutput and ExperimentalDetectronPriorGridGenerator.
* Some fixes.
* Small change.
* Now GridGenerator::validate takes three args (input partial shapes).
* Small fix.
* Deleted some usings.
* Small code style fix.
* Reverted changes in validate_and_infer_types() and validate() of op::v6::ExperimentalDetectronPriorGridGenerator.
* Added description of the class ExperimentalDetectronDetectionOutput.
* Added some comments into the header file of the nGraph operation ExperimentalDetectronPriorGridGenerator.
* Some fixes.
* Added some comments to the class of the nGraph operation ExperimentalDetectronPriorGridGenerator.
* Now the MO operation ExperimentalDetectronDetectionOutput has the attribute 'version' as 'opset6'.
* Now the MO operation ExperimentalDetectronPriorGridGenerator has the attribute 'version' as 'opset6'.
* Some fixes in the MO class ExperimentalDetectronDetectionOutput.
* Fixes in the shape infer function of the nGraph operation ExperimentalDetectronPriorGridGenerator.
* Renamed test XML model for ExperimentalDetectronDetectionOutput serialization tests.
* Added validation of input shapes for the nGraph operation ExperimentalDetectronDetectionOutput.
* Small fixes in the XML models for serialization testing of ExperimentalDetectronDetectionOutput.
* Added tests of shape infer function of the nGraph operation ExperimentalDetectronDetectionOutput for the case when input shapes are partially dynamic.
* Added tests of shape infer function of the nGraph operation ExperimentalDetectronDetectionOutput for the case when some input shapes have dynamic ranks.
* Small fixes.
* Small fix in the MO operation ExperimentalDetectronDetectionOutput shape infer function.
* Fixes in op::v6::ExperimentalDetectronDetectionOutput::validate_and_infer_types().
* Code style fix.
* Small refactoring.
* Added NGRAPH_OP_SCOPE into ExperimentalDetectronDetectionOutput nGraph class.
* Added NGRAPH_OP_SCOPE to the nGraph class ExperimentalDetectronPriorGridGenerator.
* Small fixes.
* Some refactoring.
* Small fix.
* Small fixes.
* Reverted some changes in ExperimentalDetectronDetectionOutput::validate_and_infer_type().
* Now VPU reads the attribute class_agnostic_box_regression of ExperimentalDetectronDetectionOutput as Bool.
* Now MO generates attribute 'class_agnostic_box_regression' of ExperimentalDetectronDetectionOutput only with values false or true.
* Small fix.
* Tabs were replaced by spaces in some XMLs.
* Fixed copyrights.
* Refactoring in op::v6::ExperimentalDetectronDetectionOutput::validate_and_infer_types().
* Refactoring in op::v6::ExperimentalDetectronPriorGridGenerator::validate_and_infer_types().
* Small fixes.
* Started to write ExperimentalDetectronPriorGridGenerator shape infer tests for the case when dynamic input dimensions are intervals.
* Deleted redundant 'return'.
* Written tests for interval values of input shapes of op::v6::ExperimentalDetectronPriorGridGenerator.
* Code style fix.
* Code style fix.
* Added offline transformations library
* Added python API for calling MOCTransformations
* Added CF flag for MOC Transformations
* Divided offline api to separate independent module
* Update MOC pipeline to execute only fusions
* Disable CF for PriorBox ops
* Clean-up
* Added python test
* Removed transformation pipeline as it is not ready yet
* Remove not related to this PR changes
* Fixed build for dev package case; renamed to offline_transformations_api
* Removed unrelated changes
* Removed excess exports from cmake
* Removed useless custom command from cmake
* Bucketize: Revise op class and add type_prop unit tests
* Bucketize: Develop reference implementation
* Bucketize: Add unit tests
* Bucketize: Add single layer test and cpu instantiation
* Bucketize: Add unit test with empty buckets for INTERPRETER
* Bucketize: Typo in buckets element type check
* Bucketize: Add custom generated inputs in single layer test class
* Bucketize: Use random_device to generate seed for data blob
* Bucketize: Remove unsupported f64 precision
* Bucketize: Add function description
* Bucketize: Remove randomness of inputs generation by using static seed
* Bucketize: Support different precisions for data and bucket inputs
* Bucketize: Refactor type_prop tests and improve backend unit test coverage
Enable tests including rectangular kernel and multiple kernels
Pad filters to 16B
Fix style space after if before ( needed
Fix PRETTY_FUNCTION double def
Fix canMatchWith1AsyncThread
Fix ifdefs for gna 2.0
Add and fix mock
Simplify and fix condition for Rotate features
Refine commnets in GNA CONV tests file
Apply review, Refactor ConvolutionPrimitive
Refine CNN enforce legacy
Add debug print
Move debug dump definitions
Add new metric for GNA library version
Add coments on FP32
* Initial moving
* ONNX Importer is private now - CMakeLists.txt
* ONNX Importer is private now - Includes
* Make some files visible
* Style apply
* Review fix
* Public headers have a prefix now
* Style
* hide more headers
* regionyolo do_softmax attribute
* add serialization single layer tests for normalizel2 and reshape
* add prelu sslt, change letter size in op name to align with MO
* add shufflechanels sslt, add workaround to serialize the op with proper opset number
* add broadcast sslt, change attribute string representations to lowercase
* add pad sslt, change attribute string representations to lowercase
* Unify sslt name prefixes
* add prelu name translation for serialization
* change expected type of regionyolo do_softmax attribute to bool
* transform autobcast type attr to lowercase, add unit test, add special opset mapping in serialization
* style fix
* fix indentation
* fix indentation 2
* Possibility of different opset assignment for different op versions
* Update header dates in modified files
* Match special opset to type_info_t instead of a string
* Adjust the comment to match the code
* Release mo dev guide refactoring (#3266)
* Updated MO extension guide
* Minor change and adding svg images
* Added additional information about operation extractors. Fixed links and markdown issues
* Added missing file with information about Caffe Python layers and image for MO transformations dependencies graph
* Added section with common graph transformations attributes and diagram with anchor transformations. Added list of available front phase transformations
* Added description of front-phase transformations except the scope-defined and points defined. Removed legacy document and examples for such transformations.
* Added sections about node name pattern defined front phase transformations. Copy-pasted the old one for the points defined front transformation
* Added description of the rest of front transformations and and all middle and back phase transformations
* Refactored Legacy_Mode_for_Caffe_Custom_Layers and updated the Customize_Model_Optimizer with information about extractors order
* Added TOC for the MO Dev guide document and updated SVG images with PNG ones
* Fixed broken link. Removed redundant image
* Fixed broken links
* Added information about attributes 'run_not_recursively', 'force_clean_up' and 'force_shape_inference' of the transformation
* Code review comments
* Added a section about `Port`s
* Extended Ports description with examples
* Added information about Connections
* Updated MO README.md and removed a lot of redundant and misleading information
* Updates to the Customize_Model_Optimizer.md
* More updates to the Customize_Model_Optimizer.md
* Final updates for the Customize_Model_Optimizer.md
* Fixed some broken links
* More fixed links
* Refactored Custom Layers Guide: removed legacy and incorrect text, added up-to-date.
* Draft implementation of the Custom layer guide example for the MO part
* Fixed broken links using #. Change layer->operation in extensibility documents
* Updated Custom operation guide with IE part
* Fixed broken links and minor updates to the Custom Operations Guide
* Updating links
* Layer->Operation
* Moved FFTOp implementation to the template extension
* Update the CMake for template_extension to build the FFT op conditionally
* Fixed template extension compilation
* Fixed CMake for template extension
* Fixed broken snippet
* Added mri_demo script and updated documentation
* One more compilation error fix
* Added missing header for a demo file
* Added reference to OpenCV
* Fixed unit test for the template extension
* Fixed typos in the template extension
* Fixed compilation of template extension for case when ONNX importer is disabled
Co-authored-by: Alexander Zhogov <alexander.zhogov@intel.com>
- Added linear_onnx mode support into resample_opt kernel.
- Fixed byxf layout check.
- Added Resample + Eltwise fusing support
- Update dequantize merge pass to work with eltwise instead of scale
- Fixed uninitialized m_maxBatch value for query mode
- Fixed missing AddPrimitiveToProfiler for DeformablePSRoiPooling
- Fixed 0d gather
- Added WA for Resample+Eltwise fusing
Co-authored-by: Gleb Kazantaev <gleb.nnstu@gmail.com>
Remove protocol checks for updating memType and watchdog flag. This has been verified by Microsoft on their target platform with 2 ma2085 over PCIE. The target was able to run openVino sample with these changes.
* Update the spec
* add unit-tests
* add avgPool unit-tests to CMakelist
* Remove second constructor and change the first one to take default values for rounding_type and pad_type
* add type_prop test for default values
* add 5d input single layer test instances
* add type_prop tests
* Require input to be 4D or 5D
* add validation check for pads size
* Update few tests to take 5D input instead of 6D
* Update validate_and_infer_types method
* Update infer_batched_pooling_forward and try_apply_auto_padding methods
* Update auto_padding_spatial_dims_dynamic type_prop test for binary_conv, conv, deformable_conv, group_conv and max_pool
* style-apply
* add validation check for kernel size
* add xfail for avgpool python backend test
* style-apply
* remove avgpool backend test from xfail list
* Update spec
* Allow the 3D input
* Update type_prop test with 3D input
* style-apply
* Remove xfail_issue_38709
* fix typo
* Update spec
* Update outputs section in spec
* Update spec
* fix typo
* clean file
* Update detailed description and fix xml examples
* fix exclude-type typo
* fix typo in outputs section
* [IE][nGraph]: Enables begin/end iterators for PartialShape
It's convenient to be able to use STL algorithms on
PartialShape since semantically PartialShape is a
sequence of Dimensions.
* [IE][VPU][nGraph]: Introduces tree utilities
Introduces Depth-First-Search and Breadth-First-Search
utilities for tree traversal. Templated arguments
makes them extensible for different use-case scenarios.
BFS is designed in way to make it possible to guarantee
node will be visited only after all its predecessors
have been visited:
a
/ \
b c
| |
d |
\ /
e
There with accordingly provided functors (NumEntries) it's
guaranteed node "e" will be visited after "d" and "c".
Such a property is important for nodes depth evaluation.
* [IE][VPU][nGraph]: Fixes printTo for nGraph type
For some reason if printTo for nGraph type is
usual function it's not picked up by VPU_THROW_UNLESS
triggered inside DynamicToStaticShape transformations.
Making it template specialization does the job.
* [IE][VPU]: Introduces SliceConfiguration class
SliceConfiguration is a class that's intended
to express the result of operation slicing by
batch. The result of slicing is configuration
that specifies what to do with each data object
associated with operation. There are two options
defined: Slice and Unchanged. Typical slice
scenario is Slice, when operation has the same
batch for all inputs and outputs, so all
corresponding data object will be "sliced"
(replaced with copy where batch equal to 1).
At some cases, data object should not sliced
(ex. if operation has constant input which
is the same for all input data batches and
so, does not have batch - Add of 2 tensors
with shapes [10, 1000] and [1000]). To
represent such cases there is option
"Unchanged".
At cases when operation should not be sliced
at all (ex. does not have batch, have different
batch for inputs and outputs, has static
batch and so on) SliceConfiguration object will
return false for "hasSlice" method call. In
these cases inputs and outputs methods calls
will throw an exception.
* [IE][VPU][nGraph]: Enables MatMul operation slice
In case of static batch, operation is not going to be sliced,
since for handling such cases other transformation is used.
Such approach allows both passes to co-exist while one is
being replaced with another.
If data input has other dynamic dimension than batch error
will be thrown since Myriad-X plugin does not support
convolutions (HW accelerated operations) with dynamism in
spatial dimensions.
* [IE][VPU][nGraph]: Enables Convolution operations slice
In case of static batch, operation is not going to be sliced,
since for handling such cases other transformation is used.
Such approach allows both passes to co-exist while one is
being replaced with another.
If data input has other dynamic dimension than batch error
will be thrown since Myriad-X plugin does not support
convolutions (HW accelerated operations) with dynamism in
spatial dimensions.
* [IE][VPU][nGraph]: Enables unary eltwise slice
Since extract dynamic batch transformation will handle
dynamism only by batch (so requires body loop to be static)
operations with dynamism in dimension other than batch should
not be covered by loop.
In case of dynamism in dimension other than batch eltwise
will be considered unsupported for sub-graph extraction.
* [IE][VPU][nGraph]: Enables binary eltwise slice
Since extract dynamic batch transformation will handle
dynamism only by batch (so requires body loop to be static)
operations with dynamism in dimension other than batch should
not be covered by loop.
In case of dynamism in dimension other than batch eltwise
will be considered unsupported for sub-graph extraction.
It's template function since different binary eltwise
operations have the same broadcasting rules.
* [IE][VPU][nGraph]: Enables extract dynamic batch transformation
General approach is following:
1. Extracted sub-graphs should have exactly one input and output
operation. Otherwise, it's possible that memory consumption of
model will be increased since loops implementation on Myriad-X
requires to keep all inputs and outputs of loop to be alive
along with memory used by loop body. In layout consolidation
scenario it reflects intention to use minimized amount of
permutations.
2. Extracted sub-graph should not have external connections (
the only nodes that allowed to have predecessor or successor
outside of sub-graph are input and output). Otherwise, it's
possible that memory consumption of model will be increased
for the same reason as in previous point.
To make sure this restriction is met transformation looks
for leaves in both directions, finds corresponding LCA
(Lowest Common Ancestor) and checks if such sub-graph has
external connections. If so, it repeats leaves search
procedure stopping if it approaches leaves from previous
iteration and finds LCA again. It is repeated until
sub-graph without external connections is found (it exists,
at least source itself forms it).
Leaf in current context is a node which satisfies one of
the following conditions (depending on direction):
Top:
1. It has no predecessors which are neither Parameter,
nor Constant
2. It's unknown how to slice this operation
3. It could not be sliced (different batch for inputs and
outputs)
Bottom:
1. It has no successors which are not Result
2. It's unknown how to slice this operation
3. It could not be sliced (different batch for inputs and
outputs)
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
This change fixes the error
Input blob size is not equal network input size (1!=0)
seen when passing a scalar input to a model in the case of VPU plugins.
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] fix file permissions for install location
* enable make install for OMZ
* Add option description
* remove OMZ fetching & install
* Update firmware
* Add the test case from the network
* Disable fp32 case, because in this case the network has output Convert which receives non-inner stride in its input which is not supported now.
* Support FP16 comparator.
* Add `USE_BUILD_TYPE_SUBFOLDER` CMake option to append
`CMAKE_BUILD_TYPE` to output binary directory.
Initialize it to `ON` for UNIX to keep current behavior.
* Remove forced `CMAKE_CONFIGURATION_TYPES` initialization,
use user provided value instead.
This will allow to use single config generators (like Ninja) on Windows
with MSVC compilers and get binaries in per-config sub-folders in the same
way as on UNIX.
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
* Partially removed cmake duplication with IE cmake
* Deprecated API usage: fixed or suppressed
* Fix for TypeRelaxed
* Canonical form for ngraph includes
* Removed extra visibilit settings; removed graphviz find_package
* Removed var_functions module; canonical includes for ngraph::reference
* Fixed deprecated API in ngraph tests
* Re-use standard cmake macro for shared libs
* Trying to fix ONNX importer tests
* Add file containing base tempalte funtions for all unary operators and add example with acos
* fix style-check
* add file for tests for all unary operators
* fix style
* rename unary_base.cpp to unary_ops.cpp
* Update test CMakeList
* fix typo
* style-apply
* Remove code blocks and add test for dynamic rank input
* remove deformableconvolution op from layer creator
* remove deformablepsroipooling op from layer creator
* remove maxpool op from layer creator
* remove nonmaxsuppresion from layer creator
* remove groupconvolutionbackpropdata op from layer creator
* remove groupconvolution op from layer creator
* fix code style
* [MO] Implement support of TensorFlow 2 Keras Embedding operation in MO
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Update another requirements files
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
Otherwise CMake produces the following warning:
```
CMake Warning (dev) at /usr/local/share/cmake-3.19/Modules/FindPackageHandleStandardArgs.cmake:426 (message):
The package name passed to `find_package_handle_standard_args` (Wget) does
not match the name of the calling package (IEDevScripts). This can lead to
problems in calling code that expects `find_package` result variables
(e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
/usr/local/share/cmake-3.19/Modules/FindWget.cmake:26 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
cmake/developer_package/download/download_and_check.cmake:5 (include)
cmake/developer_package/download/download_and_extract.cmake:6 (include)
cmake/developer_package/download/download.cmake:25 (include)
cmake/developer_package/download/dependency_solver.cmake:5 (include)
cmake/developer_package/IEDevScriptsConfig.cmake:208 (include)
CMakeLists.txt:12 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.
```
* fix sorting ref for myriadTestsTopK_smoke on macOS and chenged dynamic_pointer_cast to ngraph::is_type at dynamic_to_static_shape_squeeze.cpp
* disable accuracy/myriadLayersTestsExpGenerateProposals_smoke.ExpGenerateProposals tests for macOS
* Adding MYRIAD_THROUGHPUT_STREAMS to the list of plugin's supported config vals (omitted incorrectly) and enabing streams for the myriad devices in the benchmark_app
* docs update and python benchmark_app
* 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
* Set fixed version of the urllib3 package in the requirements because of the security issue in 1.25.8
* Set lower bound version of the urllib3 package in the requirements because of the security issue in 1.25.8
* [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>
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [nGraph] Python API should be compiled and installed via CMake (41857)
* Refactored wheel setup script to build module using CMake
* Update build instructions
* Added USE_SOURCE_PERMISSIONS to cmake install
* Adjust CMake compiler flags conditions
* fix CPack issue for CI build pipeline
* case insensitive option check
* build only python API if ngraph_DIR provided
* fix lib extension for macOS
* -fixed style (flake8)
-added paralllel build option & description
* fix flake8 B006 check
* add ngraph_DIR & remove unsed env. variables.
* Reworked build & test instructions to make it more straightforward
* remove unused CMake arguments for setup.py
* make source dir condition more general
* Update BUILDING.md
* Update BUILDING.md
* Update BUILDING.md
* beautified instructions wording
* fix wheel build issue after sourcing setupvars
* Extend user options to build, install and develop commands
Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
* Description: currently IRs with NMS version < 5 don't work because conversion of previous NMS versions to NMS-5 happens after DTS (in opset1 to legacy conversion), while for Myriad Plugin it's necessary to do so at the very beginning of ngraph conversion pipeline.
* TensorIterator deserialization. Introduce new on_adapter(Function) and add implementation in on_adapter(void) for Input and Output Descriptions. Remove factory adapter.
* Add comments to functions provided. Add missing on_adapter() after rebase.
* Apply formatting.
* Remove visit_attributes from SubGraphOp, remove declaration for createSubGraphLayer.
* Add port map parsing to address not consecutive order of external_port_id appearance.
* Remove header for factory_adapter.
* Add on_adapter() in V10Parse::parse() function.
* Add m_num_iterations initialization for concat output.
* Remove redundant lines, add doxygen comments.
* Change cpp/ie_cnn_network.h to local include, remove temporary map object from range for loop.
* Restore protected access for SubGraphOp.
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* - fix install paths for onnx_reader and ir_reader
- remove static lib installation for plugins on plugins
- 97-myriad-usbboot.rules is installed only for Linux
* added new line
* - Return GNAPlugin to default build list
- Remove test artifacts from cmake install distribution
- Remove nGraph static libs from cmake install distribution
* revert install rule for archive(.lib)
* revert install rule for onnx_importer (.lib)
* async network loading in the MULTI. makes the overall load time as MAX of the individual devices loading timings, as opposite to the current SUM
* correct way of getting perf counters flag for the MULTI (adding to the async load PR, as this is minor change)
* accomodating remark from the code review- MULTI enables the perf counters only if all devices support/enable that
* Add new path for constant in IR serializer.
* Apply suggestion from review.
* Unique name for temporary test file
* Switch from static to constant member function - GetTestName
* Ensure bin path is not empty.
* Compare Constants op by string values converted to float.
* Add path validation.
Co-authored-by: Patryk Elszkowski <patryk.elszkowki@intel.com>
* add 4 tests for operators based on model zoo
* fix wrong names of the models
* add functional tests for equal, lstm_cell and psroi_pooling operators
* add functional tests for ConverLike and Mod operators
* add funtional tests which were disabled, and add a minor change in convert_function_to_cnn_network.cpp file in order to make LogicalNot operator pass a test
* back to the previous .xml model
* made a changes in ir_layer_parsers.cpp in order to make logicalNot pass a test
* minor fixes to LogicalNot operator in ie_layers_parsers.cpp
* rename friendly name to "not"
* add if statement for Activation type
* fix style
* [IE CORE] enable plugins & dependent libs loading using absolute path
urrently this allowed to use plugins.xml file to specify full path to specific plugin with it's all dependency, not to be persisted in CWD or in PATH
* Code review fixes
Previously Loop shape inference function
produced dynamic shapes for body parameters
and loop outputs if iteration count is
unknown (dynamic) or loop input data is
dynamic. At the same, time some dimensions
of input/outputs of body/loop could be
inferred under this circumstances which could
critical for model enablement (ex. Myriad-X
could support convolutions with dynamic batch,
but could not support convolutions with dynamic
spatial dimensions)
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
* Update ONNX models to 00d95ba9e5758fd0bc5e6978033fabc4f2a95e61
That version fixes yolov4 and roberta models
* remove yolov4 post processing
* remove model directory before unpacking
* Enable CoreThreadingTestsWithIterations tests for GNA
Sync rest of GNA Lib API,
Sync Config for MT tests
Change models in CoreThreadingTestsWithIterations to be compat with GNA
* Use parameter for model set selection
* Fix style
* Disable HETERO CoreThreadingTestsWithIterations tests and create issue 45658
* Initial support of GatherElements in MO and nGraph
* apply_style
* added lost extractor for GatherElements
* Corrected GatherElements::validate_and_infer_types
* updated package_BOM.txt
* Type_t added
* started to implement ngraph shape_type_infer unit-tests
* finally implemented all ngraph shape_inference unit-tests
* updated Supported_Frameworks_Layers.md
* added correct handling of dynamic shapes in nGraph, added unit-tests for dynamic cases, fixed dump typos in MO, replaced axis type from int -> int64_t
* implemented shape infer for dynamic shapes with intervals
* finalized MO implementation
* applied comment from review
* style-apply
* spec correction
* removed conflict
* fixed typos
* removed obsolete comments form type_prop
* significant corrections in validate_and_infer_types
* style-apply
* data_rank check for axis
* Resolved problems with ssd_resnet34_1200
* removed debug code
* Added correct handling onnx nodes from parent graph scope
* removed unnecessary include
* fixed calcution index to replace
* fixed LoopParentParametersUsedInBody test
* added set_friendly_name
* apply Unsqueeze for each concatenated Loop output
* added handling trip count with value max_int
* merge from upstream/master
* update xfail list
* added checking is trip_count is constant
* Config for TF 2.0 Faster R-CNN models, refactored subgraph_between_nodes to use graph API
* Added support for new type of Preprocessing block in the TF 2.0 OD API models. Various fixes to enable the Faster R-CNN ResNet 50
* Updated text comments
* Fixed sub_graph_between_nodes for TensorIteratorMerge. Added support for the TF 2.X EfficientDet models (not yet reshape-able)
* Fixed unit tests
* Fixed regression for TF 1.X OD API SSD model, enabled TF 2.0 OD API SSD models
* Code clean up
* Switched TF 2.0 OD API Faster R-CNN to preprocessor replacement type 2
* Refactored ObjectDetectionAPIPreprocessorReplacement and ObjectDetectionAPIPreprocessor2Replacement
* Fixed bug in the Div transformation to Mul when input is integer.
* Added support for the TF 2.0 OD API Mask R-CNN
* Added unit tests for Div operation. Updated incorrectly modified mask_rcnn_support_api_v1.14.json
* Updated document with list of supported configuration files for TF OD API models
* Review comments
* Added tests for control flow edges for the sub_graph_between_nodes function
* Two more tests
* Fix missed/redundant attrs for some operations
* Align auto_pad attr values in spec
* Update MO IR Reader extenders for appropriate operations
* Allign auto_pad attr values for appropriate operations
* Remove changes in extenders
* Update backend_attrs for some operations
* Changes in shape_infer functions to correct work with explicit mode
* Apply offline comments
* Add spec for CTCGreedyDecoder
* Update spec
* Fix spec according to code rewiev
* Update spec
* Update spec
* Update spec according to review
* Update spec
* Update spec
* Update spec
* Update example spec
* Fix space in spec
* Fix spec
* Fix spec according to review
* fix spec
* update spec
* Update spec
* Change format outputs in spec
* Hot fix
* Minor fixes
* Add new attribute for op in spec
* change input
* Add precision to outputs
* Fix input in spec
* Update spec
* Update CTCGreedyDecoderSeqLen_6.md
fix mistakes
* Change first input layout
* fix example
Co-authored-by: Your Name <you@example.com>
* remove avgpool op from layer creator
* remove binaryconvolution op from layer creator
* remove broadcast op from layer creator
* remove ctcgreedydecoder op from layer creator
* remove stridedslice op from layer creator
* remove convolutionbackpropdata op from layer creator
* adjust broadcast op to deduce broadcast mode
* add default strides if not provided when creating stridedslice
* code review comments
* Fixed tests compilation for Android ARM
* Small fixes
* Fixed issues CVS-44775, CVS-34206, CVS-34349
* Disabled KSO tests for Template
* Eliminated invalid subgraphs
* Enabled KSO QueryNetwork tests for Template
* Fixed other plugins as well
* Used NodeTypeInfo instead of std::string
Co-authored-by: apankratovantonp <anton.pankratov@intel.com>
* Revice DetectionOutput reference implementation
Ticket: 37433
* fix test_create_op
* fix test_dyn_attributes
* apply code format
* fix crash on Windows when variance_encoded_in_target == 1
* add more checks for DetectionOutput inputs
* Fix single layer tests
* apply code format
* fix ssd_vgg16_300 inference with batch size > 1
* update types in docs
* fix crash on windows
* apply code style
* fix python tests
* fix setting output type
* change False to false and True to true in docs
* Allow prior boxes to have different type than box logits
Some models work that way
* simplify output shape calculation
* fixes to docs
* initial commit
* initial commit
* move fix to tf conv_extractor
* added 3d case
* fix e2e with 3d conv
* remove 3d case
Co-authored-by: yegor.kruglov <ykruglov@nnlvdp-mkaglins.inn.intel.com>
desired format
changed InferRequestInternal:
- added _deviceInputs member to store plugin desired perprocessing
targets
- added default argument to preProcessingRequired to describe plugin
specific desired preprocessing target
- SetBlob and GetBlob to deal with plugin desired preprocessing targets
(_deviceInputs)
- added addInputPreProcessingFor helper method to avoid code
duplication
changed TEMPLATE plugin to use new functionality:
- removed explicit presicion conversion (to use built-in one of
InferRequestInternal)
- _networkInputBlobs to use InferRequestInternal::_deviceInputs
changed PreprocessingPrecisionConvertTest:
- to force output precision to be same as input (and not FP32 always)
changed TEMPLATE plugin to allow U8 outputs
Ticket - #-42237
Add Unsqueeze, Equal and Select operations to the StaticShapeBroadcast target shape evaluator, because they are presented in the target shape subgraph evaluator in one of the network, we are currently enabling.
Ticket - #-44546
Changes:
* Support dynamic data as broadcast input in Broadcast DTS
* Update DTS tests to support both dynamic and static inputs
* Update inference tests:
a) Refactor tests to have only one testing class - NonZero_Broadcast
b) Make DSR_TestsCommon base class to reuse createInputSubgraphWithDSR and inputs generating utils.
c) Add possibility to add additional results in DSR_TestsCommon, because NonZero doesn't support cases when both its outputs are unused, so we need to add at least one of them to function results.
GFlags builds multiple targets, require aligning build
options on windows builds.
FetchModule offloads project configuration to cmake. This also allows
to align build configurations and targets across projects:
https://crascit.com/2015/07/25/cmake-gtest/
* Create new iterators which allow to iterate over coordinates.
Use new iterators to speedup StridedSlice reference implementation.
* Call memcpy if reverse ref impl has nothing to reverse.
* Add unit tests for coordinate range.
* Change coordinates::RangeIterator to template.
* Yet another slice and reverse implementation.
Remove all stuff connected with ranges.
* Apply review suggestions.
* Back to ranges which base on CoordinateTransform.
* try to fix x84_32 build
* try to fix x84_32 build
* Ranges which return start, no, stride, direction.
* add input validation to coordinate_index
enable coordinate_range validation tests
* add some doxygens
* fix range increament
* add empyt range
* move SliceRange::get_value to cpp file
Co-authored-by: Patryk Elszkowski <patryk.elszkowki@intel.com>
Co-authored-by: ggalieroc <gabriele.galiero.casay@intel.com>
* remove gather op from layer creator
* remove floormod op from layer creator
* remove minimum op from layer creator
* remove spacetodepth op from layer creator
* remove redundant virtual function specifier
* [IE]: Allows plugins to disable Gather -> GatherIE conversion
Gather layer takes axis as 3rd input, not attribute and may
take indices as 0D scalar input
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
* [IE][VPU]: Disables Gather -> GatherIE conversion
Gather -> GatherIE conversion may introduce Gather
operation decomposition into Unsqueeze + Gather +
Squeeze in case if indices input is 0D scalar input.
In case of dynamic Gather such decomposition will
break dynamic path. Myriad plugin has to support
Gather operation natively without legacy conversion.
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
* [IE][VPU]: Enables native Gather support
Gather layer in contrast with GatherIE takes
axis as 3rd input, not attribute and may take
indices input as 0D scalar input.
0D -> 1D conversion happens automatically at
the beginning of frontend.
Axis as 3rd input is supported for single value
integral scalar only.
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
* [IE][VPU][Tests]: Enable new infra single layer Gather tests
* Removes corresponding tests from old infrastructure
* Enables test cases with 0D indices input
* Extracts base test fixture from shared tests fixture.
Unfortunately, Google Tests supports Combine generator
for tuples of size up to 10 only. Originally, shared
tests fixture already has 10 elements in tuple for
tests parameters. At the same time myriad plugin needs
to specify configuration option. Since configuration
option could not be test parameter we are forced to
use separate class, in order to get rid of code
duplication base class is used.
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
* [IE][VPU]: Updates firmware
Enables native Gather support on device side
* zero-copy (assuming determenistic app-level scheduling) for the multi-device, via "borrowing" the corresponding device-specific blobs and letting the app to implicitly use these
* Optimized Infer Request Scheduling
* remoteblob checks in the conventional SetBlob
* correctly (with status) reporting NOT_IMPLEMENTED
* SetBlob to accomodate for the RemoteBobs
* Tests for remote blobs support via MULTI: creating the shared_test in case the other (closed source) plugins would want to use that (in the private shared_tests instantiations).
Also instantiating the remote blobs tests for the some basic combinations to test the MULTI supports them
* macos compilation (and general plugin platform support) fix
* shuffled files, so that the MULTI tests are now part of the ieFuncTests (and need no separate target). Also brushed the macro that handales the NOT_IMPLEMENTED as bit
* further shuffled files, so that the initial MULTI tests are now part of the IE tests, yet specific instances do need separate targets
* Fixed misprint
* Brushing the code and comments a bit
* further brushing of the ScheduleToWorkerRequest: moving the task execution directly into the loop over devices (avoids pointers and 'else' clause)
* 1) zero-copy (assuming determenistic app-level scheduling) for the multi-device, via "borrowing" the corresponding device-specific blobs and letting the app to implicitly use these
2) Initial MULTI section in the opt guide (primarily to document a tip on helping the MULTI to keep the zero-copy path)
* [MULTI] remote context support and associated scheduling (respecting the remote data affinity)
* fix CentOS (old) gcc issue: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81880
since the intriduced therad_local string is template the bug manifests itself (and the string is not allocated/initialized).
the QA is to wrap the std::string into the function
* further fix for the old gcc versions issue, now with non-trivial thread_local destruction sefault: switching from the std::string to the plain const char*
* additional tests for the MULTI and remote blobs (no remote context and multi GPUs cases)
* fix for the tests (that now can check for more specific NotImplemented exeption).
Alos couple of line endings
* added check so that sample only supports networks with one input
* moved ngraph-realted operations to related segment of the sample
* fix for output image not being saved correcly due
* Range: Align operator with spec and add unit tests
* Range: Remove output shape from range ref impl signature
* Range: Exclude backend unit tests for CPU and GPU due to unsupported dynamic ops
* Range: Add single layer test class for Range-4
* Range: Add unit test for shape inference
* Range: Add unit tests for i32 and f32
* Range: Refactor Range v0 backend test and added test for f32 type
* Range: Add floating point tolerance in unit tests to avoid failures due to precision
* Range: Add subgraph tests for Range add element-wise
* Range: Refactor Range class for single layer tests and add range add element-wise test with truncated inputs
* [VPU] Fix dynamic networks import
* [IE][GNA][TESTS] Move ImportExport tests from GNA to shared part
* [VPU][Tests] Add ExportImport test for dynamic network
* [VPU] Review fixes
* [VPU][Tests] Review and test fixes
* [VPU][Tests] Move TEST_P to shared part
* remove convert op from layer creator
* remove depthtospace op from layer creator
* remove mvn op from layer creator
* remove normalizel2 op from layer creator
* remove notequal op from layer creator
* remove subtract op from layer creator
* correct mvn op behavior when copied with new input
* fix trying to get precision from empty output of normalize layer
* fix normalize layer not setting output type
* remove trailing whitespace
* add fp64 to possible convert op precision types
* use a function to translate bool string representation
* merge emergency opset changes for mvn and roipooling ops
* Add reference implementation for PSROIPooling operator
* fix test_roi_pooling
* use std::roundf
* remove unnecessary copies in single layer tets
* Fixes after review
* fixes after review
* use element::Type_t instead of element::
* apply code format
* add PSROIPooling to evaluates_map
* apply code format
it is easy to capture when there are 2 app-level inference requests, but only single worker (MULTI) request
main thread | callback thread
___________________________________________________________________________
| <in the callback, the worker request>
| <the request returns itself to the "idle" queue>
| 1) idleGuard.Release()->try_push(workerRequestPtr)
2)<notified on vacant worker arrived via callback> |
3) starts another request with StartAsync | ...
4) <in the ThisRequestExecutor::run()> |
workerInferRequest->_task = std::move(task); | if (_inferPipelineTasks.try_pop(workerRequestPtr->task))
the last line introduces DATA RACE (sporadically manifested in the bad_function_call exception), the fix is in this commit
* remove power op from layer creator
* remove prelu op from layer creator
* remove tile op from layer creator
* remove relu op from layer creator
* remove selu op from layer creator
* remove softmax op from layer creator
* remove tanh op from layer creator
* remove split op from layer creator
* remove reshape op from layer creator
* remove reverse sequence op from layer creator
* remove proposal op from layer creator
* remove priorbox op from layer creator
* remove roipooling op from layer creator
* remove priorboxclustered op from layer creator
* style fix
* utility function to parse bool-containing strings
* align priorbox scale_all_sizes parameter to specification
* change location of getBoolStrParamAsIntStr function
* align prelu creator to new constant op changes
* adjust priorbox tests to align with scale_all_sizes default value
* adjust priorbox python tests to align with scale_all_sizes default value
* align priorboxclustered attributes initlialization to specification
* fix checking wrong container's end iterator for opset name search
* improve comment on roipooling parameters
* Apply review suggestion 1
Co-authored-by: Ilya Churaev <ilyachur@gmail.com>
* Apply review suggestion 2
Co-authored-by: Ilya Churaev <ilyachur@gmail.com>
* align priorbox step initial value to specification
* align roipooling method attribute to specification
* remove roipooling specific creator
* align with review comments
Co-authored-by: Ilya Churaev <ilyachur@gmail.com>
* create MaxPoolLayer test
* Create single layer tests for MaxPool for cpu plugin
* create max_pool_2d_ceil unit test
* Update MaxPool spec
* add comments describing AUTO and NOTSET types
* create unit test for MaxPool
* add type_prop test for default values
* add MaxPool unit tests to CMakeList
* Remove second constructor and change the first one so it has default values for rounding_type and auto_pad
* style-apply
* Update the spec
* add max pool single layer test instances for different pad type
* add 5D input max pool single layer test instance for cpu plugin
* Remove max pool single layer tests files
* add more test instances for max pool single layer tests for cpu plugin
* add newline characters
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* - fix install paths for onnx_reader and ir_reader
- remove static lib installation for plugins on plugins
- 97-myriad-usbboot.rules is installed only for Linux
* added new line
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* export TBB_DIR in setupvars
* faster implementation of gather_nd operator for reference implementations
* remove old impl and time measurements
* exclude test for gather_nd for IE_CPU (output mismatch)
* apply review comments and rename variables for clarify
* rename variables according to PR comments
* try to apply all PR suggestions
* fix indices calcualtions
Co-authored-by: Patryk Elszkowski <patryk.elszkowki@intel.com>
* Comment layer creator and node converter for Elu and Clamp ops.
* Add deserialization for GRN, HardSigmoid, GatherTree.
* Add implementation for Interp, GRN, GatherTree.
* Remove layer creation from ie_ir_parser.cpp
* Remove header files from cnn builder.
* Change op's type in elu functional test, remove name transformtion for this op from ir_parser.
* Remove empty lines.
* Fixed documentation build when paths contain spaces
* ops math formula fix
* Fixed typo in
* Added more dependencies for openvino_docs
* Improvements
Co-authored-by: Nikolay Tyukaev <ntyukaev_lo@jenkins.inn.intel.com>
* Remove unnecessary code from the reshape operator shape deduction
* Add new tests to cover cornercases after documentation update
* Fix typo in test name
* Fix codestyle issues
* Fix tests naming
Introduce vpu ngraph transformation that decomposes Mish layer with the following formula: mish(x) = x * tanh(ln(exp(x) + 1)). It is needed to fix the accuracy drop of Yolo-v4 public model that happened due to Mish implementation in the myriad plugin is not accurate enough. It is just a workaround and will be removed when Mish layer will be improved.
map: 70.97% (ref: 70.96%)
coco_precision: 73.50% (ref 73.49%)
* Optimized Infer Request Scheduling
* Fixed misprint
* Brushing the code and comments a bit
* further brushing of the ScheduleToWorkerRequest: moving the task execution directly into the loop over devices (avoids pointers and 'else' clause)
* 1) zero-copy (assuming determenistic app-level scheduling) for the multi-device, via "borrowing" the corresponding device-specific blobs and letting the app to implicitly use these
2) Initial MULTI section in the opt guide (primarily to document a tip on helping the MULTI to keep the zero-copy path)
Co-authored-by: apankratovantonp <anton.pankratov@intel.com>
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* Add CMake install rules for OpenVINO 3rd party dependencies
Remove unwanted targets from final distribution (test, static libs, etc)
* remove duplicated targets from install
align GNA Windows install path with Linux
* Add COMPONENT install name for OMP
remove empty lines
* Add OMP to CPack components
* remove gtest from deliverables
add explicitly clDNN_unit_tests target to build
* set clDNN_unit_tests properties only by condition
* remove install commands for clDNN
Co-authored-by: Alexander Zhogov <alexander.zhogov@intel.com>
* ROIPooling: Specification and op class alignment
* ROIPooling: Add check to input tensor type to be aligned with spec
* ROIPooling: Corrected spec description for input tensor shape and box coordinates
* ROIPooling: Changed attributes pooled_h and pooled_w from Shape to plain int
* Revert "ROIPooling: Changed attributes pooled_h and pooled_w from Shape to plain int"
This reverts commit d49cfa8e53.
* ROIPooling: Further specification changes
* ROIPooling: Rename enum class ROIPoolingMethod methods
* Fix style
* ROIPooling: Draft reference implementation
* ROIPooling: Adjust feature map element type to float for attribute unit test
* ROIPooling: Add single layer test class
* ROIPooling: Corrected output index to iterate through output tensor elements
* ROIPooling: Added validation checks for input types in op constructor
* ROIPooling: Add unit tests
* ROIPooling: Attributes unit test changed to align with spec
* ROIPooling: Add check for batch id in reference implementation and unit test
* ROIPooling: Refactor single layer test class
* ROIPooling: Add test for invalid pooling method
* ROIPooling: Clean up unnecessary function declaration
* ROIPooling: Remove duplicated default ROIPooling method in op constructors
* ROIPooling: Add Infer method to generate suitable ROI data
* ROIPooling: CPU single layer test instantiation for max method
* ROIPooling: Remove enum class ROIPoolingMethod
* Revert "ROIPooling: Clean up unnecessary function declaration"
This reverts commit 074b540dea.
* ROIPooling: Refactor single layer tests after removing enum class ROIPoolingMethod
* ROIPooling: Add attribute checks in op constructor to align with spec and unit tests
* Resolve CI failure: clang could not resolve static conversion from uint64_t to size_t
* ROIPooling: Fix for output index calculation to loop through all ROIs
* ROIPooling: Add unit test for bilinear interpolation method
* ROIPooling: Add CPU single layer test instantiation for bilinear method
* ROIPooling: Clean up unnecessary enum class for pooling method
* ROIPooling: Add myriad single layer test instantiation
* ROIPooling: Add F16 precision single layer tests for CPU plugin
* ROIPooling: Add node validation check for string method attribute in constructor and unit tests
* ROIPooling: Spec changes to improve understanding of the operation
* ROIPooling: Fix for bilinear method when pooled size is 1x1
* ROIPooling: Add unit test for bilinear method and pooled size 1x1
* ROIPooling: Fix to broken format of specifications
* ROIPooling: Disable Myriad single layer tests
* ROIPooling: Handle dynamic dims and ranks for input tensors and unit tests
* ROIPooling: Code clean up
* ROIPooling: Address review comments
* ROIPooling: Changed location for makeROIPooling helper method
Co-authored-by: Kirill Molchanov <kirill.molchanov@intel.com>
* Optimized Infer Request Scheduling
* Fixed misprint
* Brushing the code and comments a bit
* further brushing of the ScheduleToWorkerRequest: moving the task execution directly into the loop over devices (avoids pointers and 'else' clause)
Co-authored-by: Maxim Shevtsov <maxim.y.shevtsov@intel.com>
* [CPU BF16] Greedy mode was added
* [IE TESTS][BF16] Added support for operations with bf16 precision in the single layer tests.
* Added cpu specific bfloat16 single layer tests for the jit_eltwise primitive.
* [CPU TESTS] Activation and logical single layer tests fixes.
* [IE TESTS] Fix activation single layer tests run.
* [IE TESTS][CPU] CPUTestBase further refactoring.
* [CPU BF16] Support for Bfloat16 type was added to the MVN layer. (#3)
* [CPU BF16] MVN layer bfloat16 compatibility.
* [CPU BF16] MVN bfloat16 minor fixes.
* [CPU BF16] MVN node exception about BF16 support replaced with precision redefinition.
* [CPU BF16] MVN layer bloat16 support fixed for quantization operations and blocking layout.
* [CPU] Input and output precision checks were added to MVN layer.
* [IE TESTS][CPU BF16] Most of the bloat16 tests have been fixed.
* Bf16 crop layer (#4)
* [IE TESTS][CPU] Cpu specific test for the Crop layer has been created.
* [IE TESTS][CPU] Deprecated Crop single layer test removed.
* [CPU BF16] Bfloat16 precision was added to the Crop layer.
* [CPU BF16] Crop layer minor code improvements.
* [IE TESTS][CPU] Crop layer test added 2D tensor tests.
* [IE TESTS][CPU] Crop layer test, obsolete comment removed.
* [IE TESTS][CPU] Fixed CropIE include path.
* Crop test fix for older gcc compiler.
* [CPU BF16] Reduce layer extended with bfloat16 support.
* [IE TESTS][CPU] CPU specific single layer test for Reduce operation.
* BF16 optimized layers
* [CPU BF16] Bfloat16 custom type added to the MKLDNN plugin.
* [CPU BF16] Mem alignment to 16 bytes added to bfloat16 class union.
* [IE TESTS][CPU] Permute cpu specific single layer test and minor cpu tests fixes
* MVN cpu single layer tests extended with nhwc ndhwc layouts.
* Mod mode removed from Eltwise cpu single layer test.
* Permute cpu specific single layer test.
* Smoke keyword was added to the CPU single layer tests.
* Normalize node was modified for BF16 support
* [CPU BF16] The RegionYolo layer has been extended with the bfloat16 type support.
* Resample node was extended with BF16
* Select layer was enabled with BF16
* psroi supports bf16 (#7)
* reorders replaces converts (#9)
* BF16 planar pooling was enabled
* [CPU BF16] Cpu_convert added to the RegionYOLO node.
* [IE TESTS][CPU] Crop single layer test has been rewritten using the StridedSlice operation.
* [IE TESTS][CPU] Covert layer test extended with bf16 precision.
* [CPU BF16] The bfloat16 class was renamed bfloat16_t and some refactoring has been done.
* [CPU BF16] RegionYOLO and Softmax were aligned with the review.
* [IE TESTS CPU] CPU single layer tests refactored according to the review suggestions.
* [IE TESTS CPU] The Reduce CPU single layer test was extended with different mem orders.
* [IE TESTS CPU] Minor fixes after the review.
* [IE TESTS CPU] Common plugin configuration has been moved to PreparePluginConfiguration function.
* Minor changes after review
* StridedSlice, Select, ScaleShift notes were resolved
* Fixes to the Reduce operation cpu test and minor fixes related to the review.
* GPU eltwise tests fix.
* psroi unrolled to the primary state; code clean (#12)
* PSROIPooling layer with C++ optimizations
* Minor fix for compatibility with CPUTestsBase for fuse_permute_reorder test.
* Code clean & psroi rollbacked
Co-authored-by: Maksim Kutakov <maksim.kutakov@intel.com>
Co-authored-by: Maksim Kutakov <maxim.kutakov@gmail.com>
Co-authored-by: Yury Gaydaychuk <yury.gaydaychuk@intel.com>
* add 4 tests for operators based on model zoo
* fix wrong names of the models
* add functional tests for equal, lstm_cell and psroi_pooling operators
* add functional tests for ConverLike and Mod operators
* Removed legacy network represetnation usage
* Updated core threading tests not to use legacy networks
* Removed QueryNetworkMULTIwithHETERONoThrowv7 test
* Removed QueryNetworkHETEROwithMULTINoThrow_v7 test
* Added QueryNEtwork test add skipped for GNA
Co-authored-by: apankratovantonp <anton.pankratov@intel.com>
* Added VariableState to Plugin API documentation
* More fixes for plugin documentation
* Added ie_memory_state.hpp to documentation
* Added proper dependencies between C++ and Plugin API targets
* Fixed issues in public C++ API reference
* Fixed issues in public C++ API reference: part 2
* Removed obsolete entries from EXCLUDE_SYMBOLS in doxygen config
* Fixed path to examples, tag files for Plugin API doxygen file
* Put impl to a private section for VariableStatebase
* Fixed examples path to Plugin API: part 2
* Fixed path to examples in main ie_docs doxygen file
* Replaced path to snippets; otherwise path depends on how cloned repo is named
* Added path to snippets for ie_docs doxygen file as well
* Great amount of fixes for documentation
* Removed IE_SET_METRIC
* Fixes for C API documentation
* More fixes for documentation
* Restored Transformations API as a part of Plugin API
* Fixed tag files usage for Plugin API
* Fixed link to FakeQuantize operation
Unconditional Eltwise+ReLU merge makes some models take a bit more memory,
so they could not be inferred on Myriad-X. With this change used can
optionally disable this optimization and use Myriad-X.
* Add missing `SHA256` for `SYSTEM_PROTOC` package.
* Do not use `NGRAPH_ONNX_IMPORT_ENABLE` variable for it,
since it might not be defined at this time.
* Added info on DockerHub CI Framework
* Feature/azaytsev/change layout (#3295)
* Changes according to feedback comments
* Replaced @ref's with html links
* Fixed links, added a title page for installing from repos and images, fixed formatting issues
* Added links
* minor fix
* Added DL Streamer to the list of components installed by default
* Link fixes
* Link fixes
* ovms doc fix (#2988)
* added OpenVINO Model Server
* ovms doc fixes
Co-authored-by: Trawinski, Dariusz <dariusz.trawinski@intel.com>
* Updated openvino_docs.xml
Co-authored-by: Trawinski, Dariusz <dariusz.trawinski@intel.com>
* Tools for conditional compilation
* Unit tests for conditional compilation & Refactoring
* Fix for MSVC selective build macros
* Unit tests for conditional compilation in analysys mode
* Code generation for selective build is hidden inside CMake
* Comments for conditional compilation options
* Added pre-proc test
* Fixed mean image tests
* Disabled scale tests for CPU
* Disabled test for Myriad
* Disable tests for GPU
* Added reverse input channels test
* Disabled test for GPU
* Disable Myriad tests
* Added links to tickets
* [LPT] NetworkHelper::roundWithTolerance: removed tolerance & rename to round
[LPT] NetworkHelper::round functional tests
[LPT] ieFuncTests: updated some test-cases
* [LPT] Subtract is not used
* [LPT] AddTransformation: zero handling
* [LPT] AddTransformation test
* Add shared test for RESULT_NOT_READY return from Wait() in async mode
* Instantiate test for RESULT_NOT_READY for GNA Plugin only
* Fix compile error
* Increase model size for the RESULT_NOT_READY test
* Reuse most of the test
* Apply review
- Fix typo
* Make the test deterministic
* Use callback timestamp
* Apply review
* Use promise and future
* Deserialization implementation for Constant op.
* Add Cont op implementation for NodeConverter.
* Refactor functional tests, remove Const op from layer and node cretaors.
* Remove Constant op from NodeConverter.
* Refactor smoke test.
* Correct parameter in addBlob function.
* Update Constant op representation for myriad functional tests.
* Correct Const op representation for TopK model test.
* Add changes accroding to review comments.
* Refactor constant test.
* Add review changes.
* Add custom op for testing on_adapter(void*).
* Correct library path.
* Correct test fixture class for custom op test.
* Apply review remarks, remove creators from DeconvolutionIE.
* Refactored test ReadCustomAddConstNetwork, corrected on_adapter().
* Remove on_adapter() for CoordinateDiff which is specific to Convolution op.
* Apply review remarks.
* Apply teview remarks.
* Correct Const op in non_max_suppression tests.
* Resolve conflicts after rebase.
* Align MaxPool op attribute 'rounding_type' to spec.
Attribute name should be in lower case.
* Remove obsolete "cacheable" attribute from Parameter.
* Translate ReLU & SoftMax ops type names from ngraph to IR convention.
* Remove <data> node when op has no attributes.
* Translate all operation attributes values to lower case.
* Revert "Align MaxPool op attribute 'rounding_type' to spec."
This reverts commit 243eeccff3.
* Revert "Translate all operation attributes values to lower case."
This reverts commit d4c24175b3.
* Align MaxPool op attribute 'rounding_type' to spec.
Attribute name should be in lower case.
* Align auto_pad & auto_broadcast operation attributes to spec.
They should be written in lowercase.
* Rename op:PadType 'none' to 'explicit'.
* [GNA] added support for per-channel FakeQuantise layer
* [GNA] added quantisation types detection in FQ enabled networks, and added input scale factors detection from FQ connected to input layer
* added FakeQuantize callback that will be use to cast integer values stored as float in FakeQuantized layer
* fixed per-channel multiplier calculation for int8 case
* precision improvements for int8 fake quantization and support for propagating scale factors to activation layers
* added initial int16 support
* added support for fake quantize layer with many connected output layers and support for FQ data encoded as FP16
* added support for already quantized weights
* Shared single layer test
* Added subgraph test
* Fix comment
* int8
* Enabling FQ tests on GNA
Co-authored-by: Eugene Smirnov <eugene.smirnov@intel.com>
Co-authored-by: Andrey Dmitriev <andrey.dmitriev@intel.com>
* fix MO cli_parser when input contains substring with matching scale/mean values
* some additions to cli_parser unit-tests
* fixed numpy array comparisons -- added assert_ prefix
* more general solution for mean/scale cli_parser, names with only digit values are processed correctly
* minor corrections
* 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: ITT_INCLUDE_DIR was not correctly detected
* Added NGRAPH_STATIC_LIBRARY CMake flag to optionnaly compile ngraph and link it as a static library instead of a dynamic one
- Definition of NGRAPH_STATIC_LIBRARY macro in callee and caller code to avoid dllexport/dllimport decoration
- Adding missing definitions of the explicit instantiation of FactoryRegistry<>::get
- Removed message about a non existent variable: NGRAPH_IE_STATIC_LIB_ENABLE
- Removed install export directive for ngraph in case of static library
* * Code style fix
* Added NGRAPH_STATIC_LIBRARY CMake flag to optionnaly compile ngraph and link it as a static library instead of a dynamic one
- Definition of NGRAPH_STATIC_LIBRARY macro in callee and caller code to avoid dllexport/dllimport decoration
- Adding missing definitions of the explicit instantiation of FactoryRegistry<>::get
- Removed message about a non existent variable: NGRAPH_IE_STATIC_LIB_ENABLE
- Removed install export directive for ngraph in case of static library
* - Removed redundant symbol definition
- Indented properly some comments
* - Making sure onnx is always compiled as a static library no matter what is the value of BUILD_SHARED_LIBS
* - Making sure onnx is always compiled as a static library no matter what is the value of BUILD_SHARED_LIBS
* Fixed incorrect suppression of directive
* Using BUILD_SHARED_LIBS (defaulted to ON) instead of a custom CMake option NGRAPH_STATIC_LIBRARY
* Removed useless comma
* Forcing pugixml to be static event when BUILD_SHARED_LIBS=ON globally.
* Forcing gtest for ie tests to be compiled as a static library.
* Made protobuf and gtest from ngraph always static.
Factorized all the force static logic for ngraph's externals in ngraph's CMakeLists.txt instead of external_*.cmake
* gflags is always static
* Solving cross compilation from Debian 9
* using the same pattern for other ngraph externals
Co-authored-by: emmanuelattia-philips <66060489+emmanuelattia-philips@users.noreply.github.com>
Co-authored-by: Emmanuel Attia <emmanuel.attia@philips.com>
* update HardSigmoid spec
* create HardSigmoid ref impl
* add HardSigmoid to int_executable
* create unit-tests for HardSigmoid
* create onnx_model_hard_sigmoid test
* create onnx prototxt model for hard sigmoid
* add backend/hard_sigmoid to CMakeLists
* Change hard sigmoid prototxt to use attributes
* Change hard_sigmoid onnx model test to have 1 input
* style apply
* Change alpha and beta parameters to be pass by value
* Optimize imports in time_tests conftest.py
* Extend information to submit to a DB in time_tests:
1. Add `--manifest` and `--db_metadata` CLI keys
2. Add `prepare_db_info` fixture
* Move `validate_test_case` fixture to a const schema, remove extra checks
* Add `manifest_metadata` fixture to parse and validate manifest only once
* Add OS utils to submit os info to DB
* interpolate improvement
* JITTED cubic mode
* fix 'code is too big' when JIT
* extend test to cover tail code path
* transformation of interpolate1 to interpolate4
* add low precision transformation for interpolate4
* sequences to ti transformations, support for seq_lengths input, update reference implemetations, add new tests
* fix python api, update sequences to ti transformation
* fix sequences to ti transformation
* Update sequences to TI transformation: fix reverse sequence support
* update single layer tests, fix TI reference impl, fix Sequences to TI transformations
* ngraph code style
* fix build
* fix ngraph python api
* resolver review comments, refactoring
* Resolve review remarks
* delete xfail
* [IE TESTS][IE CMAKE] Add cmake option for configuration to skip tests
* [IE TESTS] Remove extra dependency from IE tests shared lib
* Revert to add flag
ExpGenerateProposals: temporary buffer allocation moved from firmware to blob
* Added tmpBuffer
* Changed the amount of allocated memory
* firmware update
Co-authored-by: Ivan Poliksenov <ivan.poliksenov@intel.com>
* add tests for 5 ops based on model zoo
* remove unnecessary layers from the test
* add test case with merge_repeated=0
* remove unnecessary layers and add new test casae with do_softmax=0
* remove unnecessary layers from the test
* 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>
XLink wrappers for POSIX semaphore functions (refer sem_overview for details). In the description of standard sem_destroy the following is noted:
"Destroying a semaphore that other processes or threads are currently blocked on (in sem_wait(3)) produces undefined behavior."
XLink wrappers use thread-safe reference count and destroy the semaphore only in case if there are no waiters.
* XLink semaphore wrapper impl
* Extend XLink win_synchapi
* ONNX LSTM get dimension only if required
* Test dynamic onnx lstm model import
* Enable LSTM_Seq_lens_unpacked_model import test
* Disable model zoo execution test "MSFT_opset9_LSTM_Seq_lens_unpacked"
* Add missed comma in xfail list
* Update error messages
* init xfail issue
* test zoo models import xfail issue
* Fix SEQ_LENGTH init
* Comments update
* Fix usage of v0::Add by overloaded operator
* nGraph: Fix TopK output shape inference
* nGraph: Correct TopK output shape inference
TopK lower bound of output shape at the axis was mistakenly calculated
basing on max_lenght instead of min_lenght.
* nGraph: Correct TopK output shape inference
* nGraph: Correct TopK type prop test
The topk_negative_axis_support type properties test was comparing
incompatible variables carrying the same value. So it was passing ok.
* nGraph: Add TopK type prop test
* nGraph: Fix code style
* nGraph: Follow review guidelines
Improve variables meaning.
Enforce rigid test pass condition.
* nGraph: Remove magic numbers
To follow MatMul spec update for 1D tensors this PR removes FusedOp decomposition for MatMul without changing current MatMul output shape inference logic (numpy/onnx aligned).
Based on previous PR #2212 that follows rather current spec logic.
* Fixed ConvertBroadcast3 pass for BIDIRECTIONAL mode to avoid excess Multiply operations
* Added funcitonal tests for new decompositions
* Return false if mode is unknown; avoid usign node in replace_node
* Added functional tests for cases when TargetShape input is not a Constant
* [VPU][NGraph] Support ShapeOf and Gather in TopK K propagation
* [VPU] Save calculated K value
* [VPU][Tests] Introduces tests
* [Tests] Review fixes
* added getting nms_threshold/iou_threshold from original TF RetinaNet model
* iou_threshold definition added
* fixed getting iou_threshold for TF NMS V2, some minor corrections
* added box_encoding to NMS extractors
* ITT performance counters for first inference
ITT counters for nGraph passes
* RTTI for trnasformation passes
* The MKLDNN plugin first inference counters improvements
* QueryState moved to InferRequest
* deprecate ExecutableNetwork::QueryState,chaged tests (without any check yet)
* fix build
* review fixes + build fix
* build fix + review changes
* remove blank line
* style fixes
* test build fixes
* style fix
* style fix
* fixed build of tests
* fix
* mac build fix
* hddl plugin build fix
* clean up unneeded implementation for method
* fixed tests build
* add implementation for getstate, correct getName for MklDNN
* fixed description of state API in comments
* lint fixes
* Rename MemoryState to VariableState
* added tests for cpu for VariableStates, several small fixes in tests and code
* merge fix
* lint fix
* remove whitespaces
* spaces fix
* fix in test to make it workable for all plugins
* fix typo
* fix test for gna
* remove extra comment
* fix test for gna
* Initial summary dumper implementation
* Handle Tensoriterator body + add parser script
* Add support of XML reports merging + report OP names with versions
* Remove debug device name change
* Fix windows building issue
* Add --disable_test_skips command line option
* Gtest failure with logging
* Change skipping logic and resolve linkage errors caused by extern
* Get graph body from Loop
* Fix disable_tests_skipping symbol redefinition
* Fix inline for currentTestIsDisabled
* Rollback get_body for Loop
* Handle cases with skip in test SetUp
* Report Loop and TI ops along with ops in subgraph body
* Resolve some PR comments
* Dummy commit to kick pre-commit validation
Co-authored-by: Efode, Irina <irina.efode@intel.com>
* Fixed transformations looking for FusedBatchNorm operation to consider FusedBatchNormV2 and FusedBatchNormV3 also.
* Updated unit test for FusedBatchNormTraining
* Fixed unit test
* We need to convert ExtractImagePatches op to ReorgYolo to restore the working capacity of myriad plugin while compiling Yolo-v2 models.
* It was previously removed in #2687
* Redundant op::Max CF removal
* Redundant op::Min CF removal
* Redundant op::Sum & op::Product CF removal
* CF Min and Max using evaluate()
* Arithmetic reduction CF pass removal
* Quantize op CF pass removal
* Convert op CF pass removal
* Logical reduction CF pass removal
* Select op CF pass removal
* OneHot CF pass removal
* Code formatting
* ScatterElements CF pass removal
* Gather CF pass removal
* Disable a Quantize op test that fails in CI
* CF pass cleanup
* Convert op cleanup and test adaptation to spec
* Possible fix for failing VPU tests
* Limit the types used in OneHot::evaluate
* Quantize op evaluator removal
* Refactor of Gather evaluator
* Fix dynamic output case in interpreterFunction. For dynamic output cases, we can't call get_shape on the result because it's shape is dynamic, instead, we should take the real output shape from output HostTensor
* Fix outputs naming as it's done in other DTS transformation for operations with multiple outputs (Split, TopK, etc).
Ticket - #-42421
* Added support for a new version of the TF OD API pre-processing part of the mode
* Get rid of legacy API usage
* Fix comment and added assert
* Wording
* Loop op ngraph implementation, update IE IR Reader and ngraph to cnn converter
* refactoring SubGraphOp class
* type prop unit tests
* ngraph code style
* update comment
* single layer tests for Loop operation
* fix file name
* Add SpecialBodyPorts attribute in Loop op, update single layer tests
* first debug version
* more tests
* missing test file
* removed not needed shapes from test data
* move test data to new folder
* shape infer tests
* Added execution tests
* add several new tests cases, strict checks in Loop impl, temporary disable single layer tests
* ngraph codestyle, refactoring, clone_new_args test
* resolve review remarks
* fix build
* fix tests
* more execution tests
* add a new constructor of Loop op, resolve review remarks
* execution tests
* synchro with current version
* handle scalars and more tests
* scalar test enabled
* loop reference impl
* bug fixes in tests, onnx importer part and in the ref implementation of the Loop op
* applied remarks
* handle unsupported cases
* rewrite unit tests
* update INTERPRETER manifest
* is_termination_condition_always_true simplification
* [TEST] update python models tests
* review remarks
* added xfail to tiny_yolov3
* missing model test
* revert test data
* fixed numbers of failing tests
* fixed failed test description
* fix test message
* fix xfail test
* reference implementation for ngraph::function
* update loop reference implementation
* Refactor loop reference implementation
* ngraph codestyle
* Refactoring
* Submodule update
* Skip check for Reduce ops in mkl for scalar cases, support for yolov3
* fix ngraph reader tests
* revert ceiling op, renaming
* Add allias(Ceiling) for Ceil op in mkl
* delete xfails
* fix build
* single layer tests for tensor iterarator
* Refactor TensorIterator and Loop ref impls
* revert dynamic tensor creation, disable some dynamic test cases
* fix warning
* Resolve review remarks
* revert Predefined values in Loop tests
Co-authored-by: Mateusz Bencer <mateusz.bencer@intel.com>
* Add fix for multiple_activations test
- Add forbid activation fusing pass for GNA2 library
- Fix get all prev layers fnct
- To enable GNA_NoRegression.smoke_multiple_activations_onGNA_INT16
* Apply Bartek review
* Updating broken link on getting started linux doc
Link to build instructions was broken, updated link to the correct location.
* Update get-started-linux.md
* Update get-started-linux.md
* Update get-started-linux.md
* Update get-started-linux.md
Fixed broken links and updated commands
* change tile reference implementation
* remove tile tests from interpreter manifest
* add repeats parameter to tile
* improve tile reference implementation
* add repeats parameter to tile reference call in tile evaluate method
* style apply
* include <numeric>
* add unnamed namespace to helper functions. Change stdio.h to cstdio. Change input_rank to be constant int
* add const reference to parameter repeats in tile reference function
* change createPitches function to use partial_sum instead of accumulate
* change a little bit createPitches function
* style-apply
* fix function naming
* style-apply
* fix calling functions name bug
* Add description of create_pitches function
* first version with debug logs
* reduce footprint
* single layer tests
* added more tests
* fixed handling bool type
* styles applied
* fix tile
* [ONLY DEBUG] print error scenario message
* fixed problem with e2e tests
* fixed casting of start_axis for numpy mode
Co-authored-by: pszmel <piotr.szmelczynski@intel.com>
* Commit.
* Written draft of NonMaxSuppression-5 class.
* Written conversion of the value of the second output of MO NonMaxSuppression-5 into TF format.
* Fixed type infer for the port 1 of NonMaxSuppression-5.
* Added Reshape to [1] for 0D inputs of NMS-5.
* Small fix.
* Corrected assert for number of inputs.
* Fixed docstrings for transformations TFNonMaxSuppressionNormalize and NonMaxSuppressionNormalize.
* Now the transformation TFNonMaxSuppressionNormalize uses find_and_replace_pattern().
* Moved model-optimizer/extensions/front/onnx/non_max_suppression_normalize.py to model-optimizer/extensions/front/non_max_suppression_normalize.py, to delete duplicate code.
* Deleted commented code.
* Fixed BOM-file.
* Deleted out_ports_count from NMS.
* Fixes in type_infer of NMS-5.
* Small changes.
* Added some comment.
* Small fix.
* Some fixes.
* Some code style fixes.
* Started to write the method v5::NonMaxSuppression::evaluate().
* Started to write nGraph reference implementation of NMS-5.
* Some additions.
* Written preprocessing of boxes data.
* Started to write the function non_max_suppression() that calculates NonMaxSuppression-5 operation.
* Written postprocessing of the evaluate().
* Small fixes.
* Small fix.
* Added include for ngraph/shape.hpp.
* Written the function intersectionOverUnion.
* Some additions.
* Small fix.
* Continued to write the function non_max_suppression().
* Small fixes.
* Small fixes.
* Some changes.
* Some additions.
* Some replacements size_t by int64_t.
* Added casts to float in the construction of selected_score variable.
* Code style fixes.
* Written draft of NMS-5 nGraph reference implementation.
* Code style fixes.
* Started to write tests for void op::v5::NonMaxSuppression::validate_and_infer_types().
* Added tests for scalars/nonscalars.
* Fixes in the test type_prop.nms_v5_output_shape.
* Fixes in tests nms_v5_output_shape_2 and nms_v5_output_shape.
* Written tests for validate_and_infer_types() of NMS-5.
* Code style fixes.
* Now NMS-5 evaluate() can have outputs with calculated shapes.
* Small fixes.
* Corrected tests for NMS-5 validate_and_infer_type().
* Code style fixes.
* Started to write inner version of NMS-5 with static output shapes.
* Written draft of the inner operation NonMaxSuppressionIE3.
* Started to write conversion of op::v5::NonMaxSuppression into NonMaxSuppressionIE3.
* Small changes.
* Some additions.
* Small fixes.
* Fixed typo.
* Fixed typos.
* Written draft of the transformation ConvertNMS5ToLegacyMatcher that converts ngraph::opset5::NonMaxSuppression into op::NonMaxSuppressionIE3.
* Written header file for the transformations from NMS-1, NMS-3, NMS-4 to NMS-5.
* Started to write conversion of NMS-4 to NMS-5.
* Added include for ngraph/opsets/opset4.hpp.
* Started to write conversion of NMS-3 to NMS-5.
* Small fixes.
* Written draft of the conversion of NMS-3 into NMS-5.
* Fixed typo.
* Started to write conversion of NMS-1 to NMS-5.
* Written draft of the conversion NMS-1 to NMS-5.
* Started to write tests for the conversion nGraph NMS-5 to inner NMS.
* Started to write the test ConvertNMS5ToNMSIEStatic.
* Written tests for conversion of nGraph NMS-5 to inner NMSIE3.
* Started to write tests for conversion of previous NMS to nGraph NMS-5.
* Written tests for conversion of old nGraph NMS to NMS-5.
* Started to write tests for opset5::NonMaxSuppression::evaluate().
* Some additions.
* Small fix.
* Written tests for op::v5::NonMaxSuppression::evaluate().
* Used NGRAPH_RTTI_DECLARATION for NonMaxSuppressionIE3.
* Used NGRAPH_RTTI_DECLARATION for NMS-5.
* All static local constants and functions for NMS-5 were moved into non-named namespace.
* Some code style fixes.
* Moved some file.
* Small fix.
* Code style fix.
* Now NMS-5 supports all floating types in inputs 0 and 1.
* Moved some files.
* Fixed include directive in the file convert_nms_5_to_legacy.cpp with transformations NMS-1, 3, 4 -> NMS-5.
* Small changes.
* Deleted conversion NMS-3 -> legacy.
* Small changes.
* Fix in op::v5::NonMaxSuppression::evaluate: output shape [1] instead of [] in the output port 2.
* Code style fixes.
* Deleted conversion of NMS-4 into legacy NMS.
* Deleted redundant ifs.
* Added NMS-5 to Python API.
* Code style fix.
* Small change.
* Fixed element type for constants in the conversion of NMS-5 to NMSIE3.
* Deleted support of f64 in NMS-5.
* Added checks for input element types for inputs #0, #1, #3, #4, #5.
* Small change.
* Now get_floats throws an exception for unsupported types.
* Now nGraph NMS-5 supports 0D and 1D tensors in inputs #2, #3, #4, #5.
* Small fix in test_non_max_suppression.
* Deleted using namespace std
* Fixes in test_non_max_suppression().
* Small fixes.
* Added 'import PartialShape' in test_reduction.py.
* Deleted creating fake inputs in the ctor of op::v5::NonMaxSuppression.
* Deleted creating fake inputs in op::v5::NonMaxSuppression::clone_with_new_inputs.
* Corrections in int64_t op::v5::NonMaxSuppression::max_boxes_output_from_input() const.
* Corrected functions float op::v5::NonMaxSuppression::soft_nms_sigma_from_input() const, float op::v5::NonMaxSuppression::score_threshold_from_input() const, float op::v5::NonMaxSuppression::iou_threshold_from_input() const.
* Small fixes.
* Deleted commented code.
* Fixes in nms_v5_scalar_inputs_check.
* Some changes.
* Small fixes.
* Code style fixes.
* Small changes.
* Small changes.
* Small fix.
* Deleted commented code.
* Some refactoring in ConvertNMS4ToNMS5 ctor.
* Small fix.
* Common part of conversions NMS-1 -> NMS-5, NMS-3 -> NMS-5, NMS-4 -> NMS-5 was moved into the separate function.
* Now conversions NMS-1 -> NMS-5, NMS-3 -> NMS-5, NMS-4 -> NMS-5 support both 2 inputs, and 5 inputs.
* Now transformations NMS-1 -> NMS-5, NMS-3 -> NMS-5, NMS-4 -> NMS-5 are called from 'umbrella' transformation.
* Now the transformation ConvertNMS5ToLegacyMatcher supports NMS-5 with 2, 3, 4, 5, or 6 inputs.
* The transformation ConvertNMS5ToLegacyMatcher was rewritten using Reshape instead of Unsqueeze.
* Started to rewrite tests for the transformation ConvertNMS5ToLegacyMatcher.
* Some fixes.
* Small fixes.
* Corrected tests for the transformation NMS-5 -> NMSIE3.
* Small formatting fix.
* Now methods max_boxes_output_from_input(), iou_threshold_from_input(), score_threshold_from_input(), soft_nms_sigma_from_input() of op::v5::NunMaxSuppression are public.
* Started to move op::v5::NonMaxSuppression::evaluate() into ngraph/test/runtime/interpreter.
* Added NMS-5 to ngraph/test/runtime/interpreter/int_executable.
* Small fixes.
* Code style fixes.
* Written draft test nonmaxsuppression_center_point_box_format_backend in ngraph/test/backend.
* Small fix.
* Written draft tests of NonMaxSuppression in ngraph/test/runtime.
* Some changes.
* Small changes.
* Disabled IE_CPU tests for NMS-5.
* Deleted op_eval tests for NMS-5.
* Deleted evaluate() method of NMS-5.
* Now all nGraph functions in tests of the transformation NMS-5 -> NMSIE3 have one output.
* Now preprocessing and postprocessing of the calculation of NMS-5 in reference implementation.
* Code style fixes.
* Some fixes in tests for the transformation NMS-5 -> NMSIE3.
* Replaced precision i64 -> i32 for some constants in tests for the transformation NMS-5 -> NMSIE3.
* Written creating CNNLayer for NMS-5.
* Added creating CNNLayer for NonMaxSuppressionIE3.
* some changes.
* Now conversions NMS-1, NMS-3, NMS-4 -> NMS-5 and NMS-5 -> NMSIE3 generate NMS nodes with 5 inputs.
* Fixed ctor in MKLDNN NonMaxSuppressionImpl: validation of number of output edges.
* Added conversion of output_type for NMS-5.
* Fixes in the transformation NMS5 -> NMSIE3.
* Fixes in the conversion of NMS-5 to NMSIE3.
* Fixes in MKLDNN NMS ctor.
* Small fix.
* Fixed tests for the transformation NMS5 -> NMSIE3.
* Fixed tests for conversions NMS-1, NMS-3, NMS-4 -> NMS-5.
* Small fixes in MKLDNN NMS ctor.
* Rewritten create_layer() functions for NMS-5 and NMSIE3 as addSpecificCreator() functions.
* Disabled tests for IE IR reader for NMS-4.
* Deleted debug code.
* Added comment about disabling tests IE_CPU.nonmaxsuppression.
* Written IE IR Reader test for NMS-4.
* Deleted function float_from_constant_node.
* Small fixes.
* Deleted functions function_from_model and construct_weights.
* Small fix.
* Replaced push_back with emplace_back in the conversion of NMS-5 to legacy.
* Small changes.
* Some fixes.
* Refactored reference implementation of NMS-5.
* Moved structure NMSAttributes to unnamed namespace.
* Code style fixes.
* Small fix.
* Remove deprecated v0::TopK
* Remove using SortType and using Mode from TopK
* apply code format
* Revert "Remove using SortType and using Mode from TopK"
This reverts commit ee2f99ea89.
* Reconfigured the layouts with importing the dedicated POT layout and Accuracy Checker and Model Downloader items from the OMZ layout
* updated
* test
* test
* Moved the Model Downloader from ie_docs.xml to openvino_docs.xml
* Renamed optimization_docs.xml --> pot_docs.xml
* Added Model Server to the layout
* Minor fixes
* Generate unique output file names in CheckExecGraphInfoSerialization testcase.
When multiple instances of this test were executed in parallel the same
file was accessed by multiple threads which was the cause of flakiness.
* Enable ExecGraphTests.CheckExecGraphInfoSerialization on GPU
* Fix serialization of execution graph.
* Add exec graph comparison.
* Align execution graph serialization to old aproach.
* Revise error massages.
* Fixed execution graph comparison.
Now only attribute names are compared since values can differ on
different devices.
* Readability refactoring.
* Refactoring regarding readability.
* [IE] Add batched blob support
New `class BatchedBlob : public CompoundBlob` defined to allow to pass multiple blobs as 1 InferRequest input.
Motivation: There is the special user case when a number of plain images (e.g. `NV12Blob`) should be passed as one input for network which batch size > 1.
`class CompoundBlob` is not applicable for such cases due to:
1. `NV12Blob` is `CompoundBlob` which prevents to combine multiple NV12 images to a CompoundBlob
2. The default behavior in most of plugins - do not accept generic CompoundBlob as `SetBlob()` argument
Adding `SetBlob(name, vector<Blob::Ptr>...)` to `class IInferRequest`, `class InferRequest`, `class IInferRequestInternal`, ... - is not effective solution due to limited and specific use cases for `batched inputs`.
+ Apply rule-of-zero to CompoundBlob and inherited classes.
* Add "BATCHED_BLOB" optimization capability metric
* Add BatchedBlob usage to hello_nv12_input_classification
* Apply offline code review outcome:
1. Revert CompoundBlob public .ctors signatures
2. Remove 'workaround' .ctor for `BatchedBlob`
3. Revert tensor descriptors of `I420Blob` `NV12Blob` back to the 'fake' value.
* Code review fix
* Add functional tests for CPU, GPU, MULTI, HETERO
* update doc comment
* Apply code review change requests.
* Added transformation config to support automl efficientdet-4 model
* Added configuration file to convert Automl EfficientDet model
* Updated unit test for Pack
* Added instruction on how to convert EfficientDet Tensorflow model
* Updated documentation on how to convert EfficientDet model
* Updated a documentation with instruction on how to convert Automl EfficientDet.
There was some problem with replicatioon of simple loop body where
input was used as output as is.
Also was voided usage of special prefixes like "in_" for Loop body inputs.
Signed-off-by: Alexander Peskov <alexander.peskov@intel.com>
Also:
Simplified logic of data object name restoring. Avoid duplicatin of input ports
in case of multiple consumers. Provided code has WA comment in corresponding
naming restore section. Also added WA section with restore U8 precision for ouputs.
Avoid to eliminate limitation of CNNNetwork converter.
Signed-off-by: Alexander Peskov <alexander.peskov@intel.com>
* [LPT] functional tests: FakeQuantize with dynamic intervals
* [LPT] decomposeFakeQuantize: removed debug info
* [LPT] Add NetworkHelper::mark_as_dequantization_op function
[ngraph] Fix compare runtime info function
[LPT] Fix test cases with no DEQUANTIZATION runtime attribute
[LPT] Change include path for dequantization op
* [LPT] Remove Subtract functional test, enable and rename legacy tests
Co-authored-by: Vladislav Golubev <vladislav.golubev@intel.com>
Co-authored-by: Aleksandr Pertovsky <aleksandr.pertovsky@intel.com>
* added OpenVINO Model Server
* updated documentation to include valid links
* minor fixes
* Fixed links and style
* Update README.md
fixed links to model_server
* more corrections
* dropped reference in ie_docs and minor fixes
* Update README.md
Fixed links to Inference Engine pages
Co-authored-by: Alina Alborova <alina.alborova@intel.com>
Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] fix file permissions for install location
Eltwise + ReLU merge is expected to be performed unconditionally
in all cases and since it does not require strides to be defined
could be performed before adjustDataLayout pass.
Unfortunately, there are cases with unexpected degradation after
such a change is introduced. In specific case it seems to be
caused by degradation in HW operation (convolution). It was not
investigated completely and reason is still unknown (convolution
itself remains unchanged in network, but for some reason works
slower).
It has been decided to introduce change only in case of dynamic
models to have performance benefit for some cases and avoid
degradations in others.
Moving mergeEltwiseAndReLU pass before adjustDataLayout for
dynamic cases allows to get additional performance gain due to
lack of extra copy stages introduced in adjustDataLayout.
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
* [IE][VPU][GT]: Introduce Split by dynamic dimension check
At the moment, myriad plugin does not support split operation
by dynamic axis. To be sure there is no issue with optimized-out
split operation which should have been replaced with copy
stage - assertion before DTS transformation is introduced.
Check should be performed before loop with DTS transformations
because it requires dynamic context (dynamic dimension should be
visible as dynamic), otherwise dynamic dimension would be
replaced with upper-bound estimation and check will always pass.
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
* [IE][nGraph]: Fixes normalize_axis symbol exporting
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
* Remove 49 operators from layer creator
* Remove debug code
* Add specificCreator for deconvolution
* add specificCreator for logical not
* Fix concat creator behavior for negative axis
* add creator for TopK, overrides for visit_attribute methods
* remove layerCreator templates for removed ops
* Disable exception check for Deconvolution and TopK
* add specificCreator for stridedSlice
* add specificCreator for DetecionOutput
* resolve conflict with batchNormInference changes
* fix detection output visit_attributes for some of the bools
* Remove Ceiling from LayerCreator
* Change detectionOutput param validation to expect bool instead of uint
* detectionOutput specificCreator to set bool params as int strings
* Add vector of integer value accessor handling to xml deserializer.
* Fix indentation
* Add IEGeneric node type handling.
* Remove dependency on plugin_api library.
IEGeneric type name is passed via Visiotr API as new syntetic atribute.
* Add custom operations support
* Fix charachter literals comparison.
* Pass custom opsets to CNNNetwork:serialize().
IE extensions are stored in ngraph CNNNetwork and later used to pass
custom opsets to serialization transformation.
* Refactor custom ops tests to use template_extension library.
* Add comment on __generic_ie_type__ purpose.
* Loop op ngraph implementation, update IE IR Reader and ngraph to cnn converter
* refactoring SubGraphOp class
* type prop unit tests
* ngraph code style
* update comment
* single layer tests for Loop operation
* fix file name
* Add SpecialBodyPorts attribute in Loop op, update single layer tests
* first debug version
* more tests
* missing test file
* removed not needed shapes from test data
* move test data to new folder
* shape infer tests
* Added execution tests
* add several new tests cases, strict checks in Loop impl, temporary disable single layer tests
* ngraph codestyle, refactoring, clone_new_args test
* resolve review remarks
* fix build
* fix tests
* more execution tests
* add a new constructor of Loop op, resolve review remarks
* execution tests
* synchro with current version
* handle scalars and more tests
* scalar test enabled
* loop reference impl
* bug fixes in tests, onnx importer part and in the ref implementation of the Loop op
* applied remarks
* handle unsupported cases
* rewrite unit tests
* update INTERPRETER manifest
* is_termination_condition_always_true simplification
* [TEST] update python models tests
* review remarks
* added xfail to tiny_yolov3
* missing model test
* revert test data
* fixed numbers of failing tests
* fixed failed test description
* fix test message
* fix xfail test
* zoo models tests clean-up
* missing comma
Co-authored-by: Ivan Tikhonov <ivan.tikhonov@intel.com>
LoadNetwork takes network argument by constant reference.
Myriad plugin implementation applies transformations to
given network in order to get compiled model.
Transformations take network argument by non-constant
reference, so at some point of time network copy must be
acquired. ICNNNetwork is neither copyable nor movable, so
the only way to get network copy is using special utility
returning std::shared_ptr.
Myriad plugin does not expose any ownership strategy,
so prefers to take network argument by simple reference.
Plugin also requires nGraph -> CNN conversion during
LoadNetwork implementation. Conversion utilities returns
std::shared_ptr, which makes plugin to use workaround for
lifetime of converted object (to have 2 "pointers" to
network: raw pointer to input network and smart pointer to
converted network). Such workarounds make code more
error-prone, because using wrong pointer to semantically
the same object may lead to unexpected results.
To overcome these issues API has been changed in a way to
make interfaces more clear (do not expose ownership strategy
or mutability) and get rid of unnecessary workarounds.
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
* 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>
* Add nGraph function serialization.
* Turn of execption throwing on failed visitation.
* CNNNetworkNgrapImpl serialize also support fallback to v7 serialization.
* Add error message for legacy IR not implemented case.
* Store tests models in files.
* Add tests with multiple layers.
* Style aligned to IE rules.
* Add visit_attributes to ExecutionNode.
* Layer version XML atribute implementation.
* Fix opset atribute creation for ExecutionGraph. Refactoring.
* Add missing header.
* Move opset collecting to private scope.
* Add missing header.
* Add test wit multiple oututs. Fix found issues: constant name, result
outputs.
* Move serialization to transformation library.
* Add versioning to serialization transformation.
* Add functional tests with ONNX importer path.
* Add nodes unique name checking and correction.
* Add checks for unsuported cases: dynamic shapes & GenericIE node
* General refactoring.
* Add comment describing type name translations.
* Add serialization deterministicity tests.
It's needed to ensure that subsequent calls to serialize() on the same function are giving the same results.
* Serialization in CNNNetworkNGraphImpl::serialize executed via pass::Manager.
Co-authored-by: Gleb Kazantaev <gleb.nnstu@gmail.com>
* NGRAPH_CHECK messages refactored.
* Performance and const correctness refactoring.
* Style formatting applied.
* Code simplifaction.
* Serialize transformation documentation refactoring.
* Changed compare_function() to throw on functions with multiple outputs.
Before this check was implemented with assert which means it was working
only in debug builds. Now it is working also in release build.
* Adjust tests to new compare_functions() behaviour.
* Replace cmakes add_definitions with more modern target_compile_definitions
Co-authored-by: Gleb Kazantaev <gleb.nnstu@gmail.com>
* [IE CLDNN] Memory allocation optimizations (#2178)
* [GNA] Safety fixes (#2193)
* LSTMCell test [GNA] LSTMCell fix for GNA (#2216)
* [GNA] fix scale factor calculation for unfused bias after fc (2021.1) (#2195)
* [GNA] fix scale factor calculation for unfused bias after fc
* change check
* add test
* apply requested changes
* cpplint fix
* apply test changes
* modify model for test to match ::op::
* [LPT] Copy constant with several outputs before blob update (#2197)
* [LPT] Copy constant implementation
* [LPT] the same Constant ops as FQ interval boundaries
* [Scripts] Fixing issue with exporting path-like env when it undef (#2164)
* setupvars.sh: Added logic for exporting path env in case if it not defined
* setupvars: Removed duplicated colon
* Kept quotes where they were
* setupvars: updated copyrights
* FakeQuantize + Mul fusion (#2133)
* FQ+Mul fusion transform skeleton
* FQ+Mul fusion transform tests prep
* Basic UT for the transform
* Basic implementation of the transform
* Parametrized UTs for FQMul transform
* Parametrization of FQ+Mul UTs
* Make sure that the shapes of constants match
* Check if the mul constant matches FQ data
* CentOs compilation error fix
* PR feedback and adjusted tests
* NHWC layout of the mul constant
* UT: FQ output limits 4D
* Redundant CF pass removed
* Rewrite the graph in a different way
* Shape checking infrastructure skeleton
* Handle some negative cases
* Check the rt info in the fusion test
* Fuse all Mul nodes detected after FQ node
* Dont cast the original FQ node
* Dont throw if CF fails in new output range calculation
* More UTs
* Accept any type of input to FQ in the transformation
* Test the fusion when all FQ inputs are non-const
* Fusion test when only one output limit is const
* Extend error message (#2174)
* some nGraph KW fixes (#2176)
* Removed redundant methods
* Fixed KW for linux
* Fix QueryNetwork for networks with KSO (#2202)
* Added a test to reproduce QueryNetwork with KSO
* Fixed QueryNetwork for networks with KSO
* Added additional test
* Fixed output names for case with redundant ops before result (#2209)
* [IE][VPU]: Workaround to support parameter Beta for layer Swish (#2207)
* Workaround to full support Swish layer. It is faster than native Swish for now.
* [IE][VPU]: Remove the second call of ngraph::CommonOptimizations (#2221)
* Remove the second call of ngraph::CommonOptimizations in myriad plugin
* Reuse code with vpu ngraph transformations
* Duplicate PR 2167 for release branch: GatherTree description was extended and outdated link fixed (#2235)
* add more alrifications to description
* move clarification to comment
* pseudo code become more accurate
* review changes
* Add exposing function signatures via Cython (#2244)
* [DOC] Reshape feature (#2194)
* [IE][VPU][OpenCL] 2021.1 release compiler (#2189)
* Statically analyzed issues. (#2261)
* [IE][VPU]: Fix K propagation through Reshape (2021.1) (#2180)
* Fix K propagation through Reshape
* Add test cases
* Revert "[IE TESTS] dynavic batch for mvn layer (#1010)" (#2256)
This reverts commit 2e3378c50f.
* Fixed KW warning and review issues (#2262)
* [IE][VPU]: update firmware 1381 (#2236)
* Reverting devicePriorities to be vector and respect the order, as opposed to the incorrect (recent?) refactoring that introduced the unordered_map that effectively ignores the priorities (#2251)
* update OpenCV version to 4.5.0 (#2260)
* Add VPUX configuration to compile_tool (#2248)
* [IE][TESTS] Fix compareRawBuffers and compareBlobData methods (#2246)
Use `<=` comparison instead of `<` with thresholds.
This allows to use `0` threshold for bit-exact comparison.
* [IE][VPU]: KW fixes (#2186)
* Some KW fixes
* Fix printTo in vpu ngraph transformations
* Fix for static PartialShape detection algorithm (#2177)
* Fixes for Interpolate-4. (#2281)
* Update get_ov_update_message.py (#2286)
* Clone a specific tag for pybind11 (#2296)
* [Scripts] Fix setting PYTHONPATH logic (#2305)
* setupvars.sh: Added logic for exporting path env in case if it not defined
* setupvars: Removed duplicated colon
* install_openvino_dependencies: Updated copyrights
setupvars.bat: Updated notification about incorrect Python version. Removed checking ICC2019
setupvars.sh: Removed logic with choosing higher version of installed Python. Added dynamic detecting python3 major and minor version for setting path. Add checking minimum required Python version(now 3.6)
* Added python3-gi package and fixed libglib2.0-0 package location. (#2294)
* [IE TESTS] CoreThreading_LoadNetwork tests were disabled for GPU plugin (#2245) (#2283)
* setupvars: Updated notifications, fixed calling python in Windows case (#2318)
* Updated operations specification documents (2021.1) (#2268)
* Updated documentation structure and remove incorrect added files for Acosh-1, Asinh-1 and Atanh-1
* Fixed broken links
* Fixed c samples build (#2278) (#2304)
* Fixed c samples build
fixed CVS-38816 - Failure to build samples in C
* Fixed issue with gflags
* Revert "[IE][VPU]: Fix K propagation through Reshape (2021.1) (#2180)" (#2322)
This reverts commit d604a03ac0.
* Added ONNX Resize-11 and ONNX Resize-13 to supported frameworks layers list. (#2325)
* Implement `run_executable.py` to run `TimeTests` several times (#2125) (#2188)
CI passed
* install_NEO_OCL_driver: Updated exit codes, messages. Updated way to remove old driver on Ubuntu (#2333)
* Bump cmake version to 3.13 (#2339)
* install_NEO_OCL_driver: Added checking of installed packages before trying to remove them. Added quotes for echo. (#2350)
* convert to doxygen comments
* add doxygen doc build configurations (#2191)
Co-authored-by: Nikolay Tyukaev <ntyukaev_lo@jenkins.inn.intel.com>
* [DOCS] Added an evaluate method for custom operation (#2272)
* Added an evaluate method for custom operation
* Fixed comments
* Downgrade cmake for samples (#2372)
* Downgrade cmake for samples
Downgraded cmake version to default version for Ubuntu 18.04
* Updated supported python version
The minimal python version in 2021.1 is 3.5
* Added notes about cmake requirements for samples and demo
* Install dependency refactoring. (#2381)
* Updated Transformation development doc (#2370)
* Delete xfail for resolved known issue (#2385)
* Fix layout links for dl streamer and c api (#2375)
* fix layouts
* change the dl-streamer link
Co-authored-by: Nikolay Tyukaev <ntyukaev_lo@jenkins.inn.intel.com>
* Added link options for cross-compilation (#2397)
* Added new GSG for macOS, made minor changes in Windows GSG (#2070) (#2405)
* Added new GSG for macOS, made minor changes in Windows GSG
* Update get_started_macos.md
Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>
* Fixed docs build on Windows (#2383)
* layouts and code comments
* Replace absolute links to docs.openvinotoolkit.org by relative ones (#2439)
* Replaced direct links to docs.openvinotoolkit.org with relative links
* Replaced direct links to docs.openvinotoolkit.org with relative links. Added GSGs for Win and macOS
* Minor fixes in GSGs
* Replaced direct links to docs.openvinotoolkit.org with relative links
* Removed links to OpenVINO markdown files that contain anchor - they don't work in the current implementation of the doc process
* Fixed Notes
* Removed links to OpenVINO markdown files that contain anchor - they don't work in the current implementation of the doc process
* fixed link to installing-openvino-linux.md
* Update the menu to align with POT doc headers (#2433)
* Update the menu to align with POT doc headers
It changes the menu to align with Post-training Optimization Toolkit documentation titles.
* Corrected one title
Run Examples => How to Run Examples
* Added closing braсket (#2466)
Fixed syntax error (b4b03b1)
* Remove the deprecation notice (#2314)
* Removed deprecation notice
* Removed the note from other files
* [DOCS] Update Installation Guide - GPU steps (#2308)
* Initial commit
* fixing lists
* Update installing-openvino-linux.md
* Get rid of the note
* Added the scrrenshot
* Update installing-openvino-linux.md
* fixes
* separate layout
* [Docs] Update MO What's new description (#2481)
* Azure CI: Add separated pipelines for Windows, Linux, Mac
* Feature/azaytsev/benchmarks 2021 1 (#2501)
* Initial changes for 2021.1
* Inserted Graphtool scripts, updated configurations info
* Updated FAQ and minor changes to performance_benchmarks.md
* Updated for 2021.1
* Updated
* incorporated review comments
* incorporated review comments for FAQ
* fixed link
* Update build-instruction.md for MacOsX (#2457)
* Update build-instruction.md for MacOsX
* Removed call of install_dependencies.sh from the steps
* Changed layouts
* Feature/azaytsev/cvs-38240 (#2469)
* Updated for 2020 version, replaced Ubuntu 16.04 with Ubuntu 20.04
* Updated the release package numbers
* Removed FPGA from the documentation
* Updated according to the comments in the ticket CVS-37827 (#2448)
* Updated according to CVS-38225
* some changes
* Update docs for speech libs and demos (#2518)
* Made changes to benchmarks according to review comments
* Remove `--collect_results_only` (#2523)
* Remove `--collect_results_only` from MemCheckTests
* Remove CLI keys from README
* Added logo info to the Legal_Information, updated Ubuntu, CentOS supported versions
* Updated supported Intel® Core™ processors list
* Fixed table formatting
* [Jenkinsfile] Bump infra (#2546)
* [GNA] Documentation updates for 2021.1 (#2460)
* [GNA] Documentation updates for 2021.1
* Take Mike's comments into account
* More fixes according to review
* Fix processor generation names
* update api layouts
* Added new index page with overview
* Changed CMake and Python versions
* Fixed links
* some layout changes
* some layout changes
* nGraph Python API tutorial (#2500)
* nGraph Python API tutorial
* Tweaks
* Code review comments
* Code review comments
* some layout changes
* COnverted svg images to png
* layouts
* update layout
* Added a label for nGraph_Python_API.md
* fixed links
* Fixed image
* First draft of nGraph documentation (#2271)
* First draft of nGraph documentation
* updated according to review comments
* Updated
* Reviewed the nGraph Transformation section, added missing images
* Update nGraph_dg.md
* Delete python_api.md
Removed since there is already the nGraph_Python_API.md document with a comprehensive overview.
Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
Co-authored-by: CCR\avladimi <anastasiya.ageeva@intel.com>
* Feature/azaytsev/docs 2021 1 (#2560)
* Removed FPGA from the documentation
* Updated according to CVS-38225
* Added logo info to the Legal_Information, updated Ubuntu, CentOS supported versions
* Updated supported Intel® Core™ processors list
* Added new index page with overview
* Changed CMake and Python versions
* Fixed links
* COnverted svg images to png
* Added a label for nGraph_Python_API.md
* fixed links
* Fixed image
* Update SW requirements in build instructions and change latest release to 2021.1 (#2565)
* removed links to ../IE_DG/Introduction.md
* Removed links to tools overview page as removed
* some changes
* Remove link to Integrate_your_kernels_into_IE.md
* remove openvino_docs_IE_DG_Graph_debug_capabilities from layout as it was removed
* Fixed links to images (#2569)
* update layouts
* Added deprecation note for PassConfig class (#2593)
* Post-release fixes and installation path changes
* Added pip install documentation (#2465)
* Added pip install documentation
* Change references
* tiny fixes of links
* Update installing-openvino-pip.md
Co-authored-by: Alina Alborova <alina.alborova@intel.com>
* Update OpenVino ONNX CI check (#2599)
* Update OpenVino ONNX CI
* Change parallel execution to single
* Enlarge timeout
* Remove timeout
* Add timeout to test execution
* Added PIP installation and Build from Source to the layout
* Fixed formatting issue, removed broken link
* Renamed section EXAMPLES to RESOURCES according to review comments
* add mo faq navigation by url param
* Skip hanging test case of OpenVino ONNX CI (#2608)
* Update OpenVino ONNX CI
* Change parallel execution to single
* Enlarge timeout
* Remove timeout
* Add timeout to test execution
* Skip hanging test
* Add description to skip issue
* Removed DLDT description
* Replaced wrong links
* MInor fix for path to the cpp samples
* fixes
* Update ops.py
* Fix style
* Improve pip installation guide (#2644)
* Improve pip installation guide
* Updated after comments
* Feature/ntyukaev/separate layout (#2629)
* convert to doxygen comments
* layouts and code comments
* separate layout
* Changed layouts
* Removed FPGA from the documentation
* Updated according to CVS-38225
* some changes
* Made changes to benchmarks according to review comments
* Added logo info to the Legal_Information, updated Ubuntu, CentOS supported versions
* Updated supported Intel® Core™ processors list
* Fixed table formatting
* update api layouts
* Added new index page with overview
* Changed CMake and Python versions
* Fixed links
* some layout changes
* some layout changes
* some layout changes
* COnverted svg images to png
* layouts
* update layout
* Added a label for nGraph_Python_API.md
* fixed links
* Fixed image
* removed links to ../IE_DG/Introduction.md
* Removed links to tools overview page as removed
* some changes
* Remove link to Integrate_your_kernels_into_IE.md
* remove openvino_docs_IE_DG_Graph_debug_capabilities from layout as it was removed
* update layouts
* Post-release fixes and installation path changes
* Added PIP installation and Build from Source to the layout
* Fixed formatting issue, removed broken link
* Renamed section EXAMPLES to RESOURCES according to review comments
* add mo faq navigation by url param
* Removed DLDT description
* Replaced wrong links
* MInor fix for path to the cpp samples
* fixes
* Update ops.py
* Fix style
Co-authored-by: Nikolay Tyukaev <ntyukaev_lo@jenkins.inn.intel.com>
Co-authored-by: Tyukaev <nikolay.tyukaev@intel.com>
Co-authored-by: aalborov <alina.alborova@intel.com>
Co-authored-by: Rafal Blaczkowski <rafal.blaczkowski@intel.com>
Co-authored-by: Alexander Zhogov <alexander.zhogov@intel.com>
* Fixed CVS-35316 (#2072) (#2670)
Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>
* [install_dependencies.sh] install latest cmake if current version is lower 3.13 (#2695) (#2701)
* [install_dependencies.sh] install latest cmake if current version is lower 3.13
* add shellcheck for Ubuntu
* install python 2.7 for Ubuntu
* Removed redundant file
* Exclude files that we didn't changed from merging
Co-authored-by: Sergey Shlyapnikov <sergey.shlyapnikov@intel.com>
Co-authored-by: Denis Orlov <denis.orlov@intel.com>
Co-authored-by: Kamil Magierski <kamil.magierski@intel.com>
Co-authored-by: Anna Alberska <anna.alberska@intel.com>
Co-authored-by: Edward Shogulin <edward.shogulin@intel.com>
Co-authored-by: Artyom Anokhov <artyom.anokhov@intel.com>
Co-authored-by: Tomasz Dołbniak <tomasz.dolbniak@intel.com>
Co-authored-by: Ilya Churaev <ilya.churaev@intel.com>
Co-authored-by: Roman Vyunov (Intel) <roman.vyunov@intel.com>
Co-authored-by: Maksim Doronin <maksim.doronin@intel.com>
Co-authored-by: Svetlana Dolinina <svetlana.a.dolinina@intel.com>
Co-authored-by: Evgeny Talanin <evgeny.talanin@intel.com>
Co-authored-by: Evgenya Stepyreva <evgenya.stepyreva@intel.com>
Co-authored-by: Maxim Kurin <maxim.kurin@intel.com>
Co-authored-by: Nikolay Shchegolev <nikolay.shchegolev@intel.com>
Co-authored-by: Andrew Bakalin <andrew.bakalin@intel.com>
Co-authored-by: Gorokhov Dmitriy <dmitry.gorokhov@intel.com>
Co-authored-by: Evgeny Latkin <evgeny.latkin@intel.com>
Co-authored-by: Maxim Shevtsov <maxim.y.shevtsov@intel.com>
Co-authored-by: Alexey Suhov <alexey.suhov@intel.com>
Co-authored-by: Alexander Novak <sasha-novak@yandex.ru>
Co-authored-by: Vladislav Vinogradov <vlad.vinogradov@intel.com>
Co-authored-by: Vladislav Volkov <vladislav.volkov@intel.com>
Co-authored-by: Vladimir Gavrilov <vladimir.gavrilov@intel.com>
Co-authored-by: Zoe Cayetano <zoe.cayetano@intel.com>
Co-authored-by: Dmitrii Denisov <dmitrii.denisov@intel.com>
Co-authored-by: Irina Efode <irina.efode@intel.com>
Co-authored-by: Evgeny Lazarev <evgeny.lazarev@intel.com>
Co-authored-by: Mikhail Ryzhov <mikhail.ryzhov@intel.com>
Co-authored-by: Vitaliy Urusovskij <vitaliy.urusovskij@intel.com>
Co-authored-by: Nikolay Tyukaev <ntyukaev_lo@jenkins.inn.intel.com>
Co-authored-by: Nikolay Tyukaev <nikolay.tyukaev@intel.com>
Co-authored-by: Gleb Kazantaev <gleb.kazantaev@intel.com>
Co-authored-by: Rafal Blaczkowski <rafal.blaczkowski@intel.com>
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>
Co-authored-by: Maksim Proshin <mvproshin@gmail.com>
Co-authored-by: Alina Alborova <alina.alborova@intel.com>
Co-authored-by: Maxim Vafin <maxim.vafin@intel.com>
Co-authored-by: azhogov <alexander.zhogov@intel.com>
Co-authored-by: Alina Kladieva <alina.kladieva@intel.com>
Co-authored-by: Michał Karzyński <4430709+postrational@users.noreply.github.com>
Co-authored-by: Anton Romanov <anton.romanov@intel.com>
* Change default parallel reduce alg into deternimistic way
Signed-off-by: Alexander Peskov <alexander.peskov@intel.com>
* Introduce ie::parallel_for semantic with group_id parameter
Signed-off-by: Alexander Peskov <alexander.peskov@intel.com>
* [CPU] Make MVN behaviour deterministic
Signed-off-by: Alexander Peskov <alexander.peskov@intel.com>
* enable reference implementation for CTCGreedyDecoder single layer tests
* update unit test to have blnak_index
* remove merge_repeated disable flag for CPU test because CPU impl always
merge
* add CTCGreedyDecoder single layer tests for CPU
* changes to match xPU implementations
* apply reviewers suggestions
Co-authored-by: Patryk Elszkowski <patryk.elszkowki@intel.com>
* Remove obsoleted v0::Broadcast and BroadcastLike operators
* remove NGRAPH_DEPRECATED marks from autobroadcast functions
* restore NGRAPH_SUPPRESS_DEPRECATED_START in autobroadcast.cpp
* Add hsigmoid fusing for MO
* Update Bom file
* Remove comments
* Refactoring hsigmoid fusion according to review
* Add div and mul patterns for hsigmoid fusion
* Refactoring code according to review
* Fix HSigmoid fusion transformation
* ngraph python sample
This sample demonstrates how to execute an inference using ngraph::Function to create a network
- added sample
- added readme
- added lenet weights
* Added onnx support for C samples
* Revert "ngraph python sample"
This reverts commit 8033292dc3.
* Added onnx support for C samples
Fixed codestyle mistake
* Removed optional code
Co-authored-by: Alexander Zhogov <alexander.zhogov@intel.com>
* [VPU][GT][NGraph] Get rid of DynamicNMS and transformation
* [VPU][NGraph] Update DTS for NMS
* [VPU][NGraph] Update StaticShapeNMS to be inherrited from NMS-5
* [VPU][GT] Update StaticShapeNMS stage to work with updated NGraph op
* [VPU][Tests] Update tests
* [VPU][GT] Fix StaticShapeNMS to be inherited from NonMaxSuppressionIE3
* [VPU][GT] Remove unused NonMaxSuppression
* Added tests
* Changed iterator algorithm
* Fixed legacy tests
* Added plugin tests
* Disabled some tests
* Remover parameter tests
* Fixed conversion
* Use old approach for old tests
* Temp commit
* Fixed iterator
* Fixed some tests
* Change logic to compare iterators
* Disabled CPU functional test
* Temp commit
* Disabled test for GPU
* Fixed network copy
* Try to fix test for Windows
* Disabled test for GNA
* Disable plugin tests
* Disable legacy test
* Remove redundant code
* Add Round-5 operation
* Add ONNX Round to supported operation list
* Add ngraph implementation for Round operation
* Update MO part
* Create UnaryElementwise class, update Round Operation
* Fix mode attr in mxnet extractor
* Add tests for Round shape infer
* Update 'enable' attr
* Update MO IR Reader to support UnaryElementwise operations
* Minor test refactor
* Update ngraph Round operation
* Add reference implementation
* Add test for reference implementation
* Add test for shape infer
* Add test for IE IR Reader
* AddRound operation to python api
* Fix missed mode attr
* Update Round operation version
* Fix codestyle
* Add MxNet Round to supported layers list
* Fix error in reference
* Fix comments style
* Update CMake file
* Update Ngraph reference test
* Update IE IR Reader tests
* Return v0::Round operation
* Update shape infer tests
* Fix v0::Round reference
* Fix codestyle
* Enum instead of string
* Fix codestyle
* Add Mode attribute adapter
* Update Mode attr
* Fix reference for v0::Round
* Fix codestyle
* Fix mode attr
* Fix get() method
* Fix codestyle in python api
* Update test info
* Fix ngraph api part
* Ad round v5 to interpreter tests
* Fix codestyle is ie reader test
* Update ngraph python api __init__.py file
* Adde opser5 to dafault opsets in ie_ir reader
* Add parser for Round layer
* Remove redundant spaces
* Add round creator to appropriate list
* Remove redundant import
* Commit to bump infrastructure version
I'm sorry for this, but this commit will be squashed on merge to master anyway and it is needed for your PR to correctly pass the pipeline
* Fix import
* fix codestyle
* Fix ngraph api part
* Add shape infer tests in python api
* Add .upper() for mode attr
* Refactor MO shape infer test for Round op
* Update tests and add comments
* Revert "Commit to bump infrastructure version"
This reverts commit 56e6ae1e4c.
* remove parser for Round layer
* Update Ronund-5 evaluate test
* Resolve review comments
Co-authored-by: User <user@nnlvdp-achetver.inn.intel.com>
Co-authored-by: Andrey Babushkin <andrey.babushkin@intel.com>
Co-authored-by: Anton Chetverikov <anton.chetverikov@.intel.com>
* Implement LookupTableInsertV2 shape inference
It is needed if other nodes not beeing pruned in the graph
have a conditional dependence on LookupTableInsertV2 node.
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Fix after core-review #1
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Fix the code after review #2
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Fix after code review #3
`GetBlob()` as well
- test were extended to cover case when input tensors are copied into
Blob return by `InferRequest::GetBlob`
- channel number of input tensor is made a test parameter
* Sync GNA lib calls to avoid multi threads and plugins crash
* Remove TODO
* Enable sync for GNA1
* Fix GNA1 sync
* Add core_threading_tests to GNA Plugin to address story 31709
* Disable and change test description
* fix typo in LRN docs
* fix link to reference in LRN doc
* LRN, LRN_IE types alignment with spec
* align LRN ref implementation to plugins behavior
* update LRN docs
* Improve LRN reference implementation performance
* restore LRN constructor with no axes in the input
* apply code format
* revert double->float size_t->int change
* small fix to example in doc
* revert double->float size_t->int in onnx_importer and backend tests
* Changes to docs after review
* Loop op ngraph implementation, update IE IR Reader and ngraph to cnn converter
* refactoring SubGraphOp class
* type prop unit tests
* ngraph code style
* update comment
* single layer tests for Loop operation
* fix file name
* Add SpecialBodyPorts attribute in Loop op, update single layer tests
* add several new tests cases, strict checks in Loop impl, temporary disable single layer tests
* ngraph codestyle, refactoring, clone_new_args test
* resolve review remarks
* fix build
* fix tests
* add a new constructor of Loop op, resolve review remarks
* Extend MO for operation GatherND
* Update documentation
* Rename GatherNd.py to gathernd.py
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* Remove extra functions from run_timetest.py
* Add `log.debug` of raw and aggregated statistics in run_timetest.py
* Implement storing of models locally for test_timetest.py
* Use ittnotify built from sources
ITT tracing was only possible on the platfroms supported by VTune.
Building ittnotify from sources removes VTune dependency.
ITT traces was found significantly slowdown tests execution time.
Disabling ENABLE_PROFILING_ITT by default. This is also
a current behavior of Intel Distribution of OpenVINO.
* Fix missprint
* Add include directories to itt
* added unit test
* added python test
* using pword approach
* Added passing path to onnx reader
* support for wstring
* Added more tests
* Apply suggestions from code review
Co-authored-by: Michał Karzyński <4430709+postrational@users.noreply.github.com>
* fix build for Windows
* styles applied
* Fixed Windows tests
* styles applied
* fixed styles in tests
* review remarks
* cmake order
* Used target_compile_definitions instead of add_definitions
* Move ONNX_TEST_MODELS to other scope
Co-authored-by: Michał Karzyński <4430709+postrational@users.noreply.github.com>
* Initial movement
* Divided transformations to common and legacy
* Changed ngraph visibility to ie_api.h
* CommonTransformaitons to Internal
* New trasnformations location structure
* fixde typo; move convert_quantize_dequantize to common
* Added control_flow folder
* C++ feature in C `typedef struct` code.
* The warning can be promoted to error in dependent projects.
C5208: unnamed class used in typedef name cannot declare members other than
non-static data members, member enumerations, or member classes
It allows skipping inference-engine/thirdparty/pugixml and using the
system copy instead.
Thanks to @Osse for helping understand cmake scoping rules.
Co-authored-by: Helmut Grohne <helmut.grohne@intenta.de>
* [MO] [Kaldi] Added TDNN Component
* TdnnComponent replacer graphical comment updated
* Added SpecAugmentTimeMaskComponent
* some refactor of memoryoffset shape_infer
* moved memoryoffset splitting to the middle stage
* some corrections
- set `need_shape_inferenc`=False in split_memoryoffset
- use cycle instead of pattern in tdnn_replacer
* separated splitting of MemoryOffsets in LSTM and TDNN blocks
* set transpose_weights=True in TdnnComponent
* Corrected Supported_Frameworks_Layers
* corrected comments
* separate naming for tdnn and lstm memoryoffset splits
* corrected BOM file
* corrected generaldropout_ext.py and removed 'has_default' for tdnn_component
* corrections after PR review
* renamed LSTM -> recurrent; added setting element_size for paired nodes of tdnn_memoffset and othe minor changes
* Update split_tdnn_memoryoffset.py
* corrected partial infer with new API in elemental.py and split_tdnn_memoryoffset.py
* Add tests, examples and documentation changes for custom ONNX operators registration mechanism
* Change snippet paths
* fix CoreThreadingTests.ReadNetwork - data race in ops_bridge
* Make TemplateExtension::Operation externally visible
* changes after review
* apply code format
* use std::int64_t
* forward declare get_attribute_value specializations
* introduce unregister_operator in onnx_importer
* onnx_custom_op - lock mem first then take a buffer
* func tests - create template_extension via make_so_pointer
* fix build with NGRAPH_ONNX_IMPORT_ENABLE=OFF
* remove exports from Operation and Extension
* Move multithreaded AddExtension test to different directory to it can be excluded when NGRAPH_ONNX_IMPORT_ENABLE=OFF
* Dont include Extension tests if ENABLE_MKL_DNN=OFF
* fix excluding onnx_reader tests
* include extension tests only if mkl is enabled
* add comment on empty blob
* use register_operator conditionally in template_extension
* fix docs after review
* create static library from onnx_custom_op
* add additional test for unregister_operator
* move model example after register step
* revert changes to unit tests
* update ngraphConfig.cmake.in header
* add headers to onnx_custom_op
* changes to docs CMakeLists
* remove redundant onnx_importer dependency
* remove extension directory from func tests
* make onnx_importer a component of ngraph package
* docs fixes
* update header of ngraph/cmake/share/ngraphConfig.cmake.in with ngraph_onnx_importer_FOUND
* Initial version of transformation callback refactoring
* Improved fine-grain tuning for transformation pipeline
* Check disabled matchers in GraphRewrite
* Avoid deprecated classes inside PassConfig
* Enabled DepthToSpace fusion by default
* Removed doulbe search in map
* Moved back pass_config.hpp; Added doxygen documentation for new class and methods
* Added doxygen comment for Manager and GraphRewrite new mthods
* The specification of NonMaxSuppression-5.
* Replaced opset4 with opset5.
* Fixed func(iou) when soft_nms_sigma == 0.
* Now outputs of NMS-5 have dynamic shapes.
* Now inputs 3, 4, 5, 6 can be 0D or 1D tensors.
* Now output 3 is 1D tensor.
* Add logging of DB upload to tconf with refs saving
* Prepare `.automation/tgl_test_config.yml` with models from VPUX package
* Add restriction on `exe` and `model` existence in run_timetest.py
* Fixed concat output name when decomposing shape_of in CF
* Added friendly_name propagation for CF pass
* Propagate runtime info inside ConstantFolding pass
* Fixed rt info merge strategy to avoid cases when merge is not implemented but attributes number is equal to 1
* Remove `generate_tmp_path` as unnecessary after refactoring
* Add `check_positive_int` check for `-niter` CLI key
* Replace `TestConfDumper` with number of fixtures:
1. Save all test info in global `request` and `pytestconfig` fixtures
2. Add `test_info` fixture for retrieving test info from test
3. Add `prepare_tconf_with_refs` fixture for test conf dump
* Update docs for speech libs and demos (#2518)
* [GNA] Documentation updates for 2021.1 (#2460)
* [GNA] Documentation updates for 2021.1
* Take Mike's comments into account
* More fixes according to review
* Fix processor generation names
* Split cmd arguments onto sections (common, MYRIAD, FPGA).
* Add `-iol` cmd argument as `-iop` analogue for layouts.
* Remove limitations over `-ip`, `-op`, `-iop` arguments.
Now they supports full meaningfull set of Precision/Layout values and will allow to user set any precision for any input/output.
The applicability for this in under user reponsibility and support under plugin reponsibility.
* Add VPUX default configuration.
* Adjust code style to the project common style.
Co-authored-by: Alexander Novak <sasha-novak@yandex.ru>
* First draft of nGraph documentation
* updated according to review comments
* Updated
* Reviewed the nGraph Transformation section, added missing images
* Update nGraph_dg.md
* Delete python_api.md
Removed since there is already the nGraph_Python_API.md document with a comprehensive overview.
* Fixed links to images
Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
Co-authored-by: CCR\avladimi <anastasiya.ageeva@intel.com>
* concat input not used fix rough implementation
* [GNA] Cascade concat input not assigned fix
* reduce copying in recursive function
* [GNA] Aligned cascade concat test
* [GNA] fix cases when layer output is used in both memory and concat parent layer
* coma fixes
* Issue-36189 CopyLayerPass for concat parent cases fix test
* Fix test for CPU
* Remove test for GPU
* [GNA] get output before activation test
[GNA] SubstituteScaleShiftBroadCastPass fix for cases when there are multiple scaleshifts as an output from the layer
[GNA] Generalize Fix where LSTMCell output was zero due to being fused into activation
[GNA] Fix LSTMCell being zero on channel C if being output layer
* linux build fix
* Sync GNA lib calls to avoid multi threads and plugins crash
* Remove TODO
* Enable sync for GNA1
* Fix GNA1 sync
* Add core_threading_tests to GNA Plugin to address story 31709
* Feature/azaytsev/cvs-38240 (#2469)
* Updated for 2020 version, replaced Ubuntu 16.04 with Ubuntu 20.04
* Updated the release package numbers
* Updated according to the comments in the ticket CVS-37827 (#2448)
* Update build-instruction.md for MacOsX (#2457)
* Update build-instruction.md for MacOsX
* Removed call of install_dependencies.sh from the steps
* Move passes to CommonOptimizations
* Updated BN tests to use ranges for constant value generation
* Added some decomposition passes into legacy conversion
* Added WA for FQReshapeFusion pass
* Downgrade cmake for samples
Downgraded cmake version to default version for Ubuntu 18.04
* Updated supported python version
The minimal python version in 2021.1 is 3.5
* Added notes about cmake requirements for samples and demo
* Replaced direct links to docs.openvinotoolkit.org with relative links
* Replaced direct links to docs.openvinotoolkit.org with relative links. Added GSGs for Win and macOS
* Minor fixes in GSGs
* Replaced direct links to docs.openvinotoolkit.org with relative links
* Removed links to OpenVINO markdown files that contain anchor - they don't work in the current implementation of the doc process
* Fixed Notes
* Removed links to OpenVINO markdown files that contain anchor - they don't work in the current implementation of the doc process
* fixed link to installing-openvino-linux.md
* Add MSFT models to OpenVino ONNX CI and update xfails
* Update paths
* Fix typo and update xfails
* Unset xfails to check current behavior
* Update:
* add MSFT models to preprocesing script
* update xfail names
* Final update of xfail test cases
* Update xfail paths
* Update xfails
* Uncomment part of preprocesing script
* Update script
* Add cleaning support for MSFT preprocesing
* Add -e option to script help
* Initilze variables
* Update ngraph/python/tests/test_onnx/model_zoo_preprocess.sh
Fix a mistake
Co-authored-by: Tomasz Socha <tomasz.socha@intel.com>
* Update ngraph/python/tests/test_onnx/model_zoo_preprocess.sh
align spaces
Co-authored-by: Tomasz Socha <tomasz.socha@intel.com>
Co-authored-by: Tomasz Socha <tomasz.socha@intel.com>
It uses CMake 3.16 built-in utilities to speed up build time:
* Unity builds
* Precompiled headers
The feature is controlled via `ENABLE_FASTER_BUILD` CMake option (disabled by default).
The option avaialble only on CMake >= 3.16.
The feature is enabled per-target via `ie_faster_build` function.
Some observations:
* Don't have actual numbers for compile time, but subjectively can see
speed up locally with VS 2019.
* Unity builds gives much more effect, but has some restriction on source files,
so are not used everywhere.
* [IE][VPU]: Fixes addCopyForOutputsInsideNetwork
In case of dynamic output with consumer pass tries
to connect output's shape with new intermediate data
twice: one at the moment of duplicateData call (successful)
and once more at the end of the pass manually. The second
try leads to error since child data is already connected.
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
* [IE][VPU]: Introduces tests on addCopyForOutputsInsideNetwork
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
* Change request.infer to use param_names instead of request._input_list because it fix the bug
* remove xfail mark
* remove xfail_issue_35893 form tests/ __init__.py
* Remove xfail_issue_35893. Add OnnxBackendNodeModelTest.test_convtranspose_3d_cpu to xfail_issue_38091
* Remove OnnxBackendNodeModelTest.test_convtranspose_3d_cpu from xfail_issue_38091 in test_backend.py
- introduced type_dispatch primitive
- refactored SplitX and MergeX kernels to use type_dispatch
- extended SplitX and MergeX to support 8S, 16U, 16S, 32S types
* Update md files. Add cpp in docs/examples
* Normalize all the line endings
* Fix block_id in snippets
* Fix utf-8 encoding
* Add new folder for snippets
* Fix issues with compiling code from snippets
* Added conteiner iterator fix
* fake quantize single layer test for GNA plugin
* implemented fakequantize for fp32 case as an activation function
* added proper seed randomisation within single test run
* [GNA] [FAKEQUANTIZE] fixed ref-fp32 implementation on GNA to use nearbyint instead of roundf
* [GNA] [FAKEQUANTIZE] restored random seed
* [GNA][FAKEQUANTIZE] disabled 4d and integer tests for FakeQuantize
* [GNA][FAKEQUANTIZE]updated ngraph FakeQuantize builder to accept seed
* [GNA][FAKEQUANTIZE]aligned FP calculations order on GNA with reference ngraph - this however gives more error
* [CPU]build of FakeQuantise tests restored
* [TESTS][FAKEQUANTIZE] ignore extra inferRequests for disabled tests
* [GNA] Fixed legacy unit test failuers appeared due to extra check for possible segfault in import frames
* [GNA] adopted fuse multiple identities for FakeQunatize layer
* [GNA]fp32 runtime code review
* Backport of FQ+Mul transform to master
* Accept any type of input to FQ in the transformation
* Test the fusion when all FQ inputs are non-const
* Fusion test when only one output limit is const
* Test passing the output of FQ to second input of Mul
* Specify in and out precisions separately, add layouts for convolution
* Align convolution layer tests instantiations with updated definition
* Align convolution layer tests instantiations with updated definition for template plugin
* net, in, out prcs
Co-authored-by: Mikhail Treskin <mikhail.treskin@intel.com>
* UWP fixes
* Commented code for compilation with UWP
* Current state: compiled for DESKTOP_APP
* Fixes
* Added toolchain
* Enabled ONNX imported for Windows Store
* Updated toolchain
* Fixes
* Disable ONNX in case of UWP
* Fix for Windows Driver
* Applied style check
* Dynamic loading of GetDLLDirectory symbols
* Clean-up in the toolchain
* Updated mkldnn plugin cmake
* ConvertPrecision - saturate Constant's value to std::numeric_limits<dst_type>::lowest() if it's below that limit.
* Remove clamping to std::numeric_limits<int32_t>::lowest() in U32/U64 case
* fix bidirectional case in references of sequences ops, enable decomposition of bidirectional cases in CommonOptimizations
* introduce new opset5, include GRU/RNN/LSTM Sequences to opset5
* Revert "introduce new opset5, include GRU/RNN/LSTM Sequences to opset5"
This reverts commit 73c22a11db.
* Introduced a new way to test DSR+Op cases
* Enabled DSR_Reduce, DSR_VariadicSplit, DSR_TopK, DSR_Scatter, DSR_Unsqueeze tests
* Other disabled tests are still disabled until reference function is implemented. Added related comments
* Reduce DSR+Op tests execution time via reducing tensor shapes
setupvars.bat: Updated notification about incorrect Python version. Removed checking ICC2019
setupvars.sh: Removed logic with choosing higher version of installed Python. Added dynamic detecting python3 major and minor version for setting path. Add checking minimum required Python version(now 3.6)
* Now coordinate_transformation_mode used for all axes in the 'nearest' mode.
* Temporarily added tests for Interpolate-4 evaluate().
* Deleted temporarily added tests.
* Fixed documentation for the 'nearest' mode.
* Small fixes.
* Disabled Interpolate-4 layer tests for CPU.
* Disabled some Interpolate-4 CPU tests.
* do not change index table when execute each time
* layout check added
* interpolate for no batch size even scale is 1
* coordinate transformation with div scale, not multiple 1/scale, for higher accuracy
* disable tests temporal
* test modification
* Some changes.
* Enabled some tests.
* Fix searching of pipelines for `time_tests` build
* Add `realpath` use in README for IEDevPackage because of limitation
* Add `mkdir build && cd build` commands in README
* Rename `time-tests` to `time_tests` in README
some plugins
- added shared parameterized tests
- instantiated for template plugin
- instantiated for cpu plugin
- fixed CPU plugin to properly handle U16 input
- fixed CPU reverse_sequence primitive to alolw input/oputput tensors to
be in FP32 only
- updated ngraph test_simple_computation_on_ndarrays to not expect
failure on U16 input
* [GNA] fix scale factor calculation for unfused bias after fc
* change check
* add test
* apply requested changes
* cpplint fix
* apply test changes
* modify model for test to match ::op::
* Removed shape inference fr IR v7 and older
* Disabled dynamic batch tests which require reshape
* Fixes tests 2
* Disabled MKLDNN tests with convolution reshape
* Fixed GPU tests
* Disable VPU tests with batch size > 1 for old IRs
* Removed most of shape infer functions for old representation
* Removed most of CNNLayer validators
* Fixed validators and keep only parseParams
* Removed tests on invalid IR v7
* Disabled more VPU tests
* Removed Backetize validator
* Disable one more Myriad tests case where reshape for old IR is needed
* Removed useless reshape
* Need to replace GRUCell with Unique
* Moved shape infer functions for experimental layers to Core IE
* Fixed shape inference functions not to depend on legacy
* Added missed SparseToDense
* Added descriptive error message
* Fixed comments
* ti to sequences transformations
* fix sequences to sequences ie conversion
* resolve review marks
* resolve review remarks, fix ti to sequences transformations to support batch > 1 if slice axis == 0
* temporary enable ngraph ti transformations for cpu plugin
* fix includes
* Revert "fix includes"
This reverts commit 6cf15b97be.
* Revert "temporary enable ngraph ti transformations for cpu plugin"
This reverts commit fd528d7216.
* delete todo comments
* Initial commit
* [SSR] Reshape(2D)->MatMul constrain relaxation
* Moved common pattern mechanics to the common function
* Moving SmartReshape to CNNNetworkNgraphImpl ctors
* Review comment
* Tests
Split time-tests common library
Add a README.md with workflow description.
Defined "timetest_" suffix for all time tests.
Applied clang-format-9 and added a README.md
Co-authored-by: Alina Alborova <alina.alborova@intel.com>
If you want to contribute to a project documentation and make it better, your help is very welcome.
This guide puts together the guidelines to help you figure out how you can offer your feedback and contribute to the documentation.
## Contribute in Multiple ways
There are multiple ways to help improve our documentation:
* [Log an issue](https://jira.devtools.intel.com/projects/CVS/issues): Enter an issue for the OpenVINO™ documentation component for minor issues such as typos.
* Make a suggestion: Send your documentation suggestion to the mailing list.
* Contribute via GitHub: Submit pull requests in the [GitHub](https://github.com/openvinotoolkit/openvino/tree/master/docs) documentation repository.
## Contribute via GitHub
Use the following steps to contribute in the OpenVINO™ Toolkit documentation
### Use Documentation Guidelines
The documentation for our project is written using Markdown. Use our [guidelines](./docs/documentation_guidelines.md) and best practices to write consistent, readable documentation:
> **NOTE**: Please check if that information can be added to existing documents instead of creating a new one.
1. Fork the [OpenVINO™ Toolkit](https://github.com/openvinotoolkit/openvino) repository.
2. Create a new branch.
3. Create a new markdown file in an appropriate folder.
> **REQUIRED**: The document title must contain a document label in a form: `{#openvino_docs_<name>}`. For example: `Deep Learning Network Intermediate Representation and Operation Sets in OpenVINO™ {#openvino_docs_MO_DG_IR_and_opsets}`.
4. Add your file to the documentation structure. Open the documentation structure file [docs/doxygen/ie_docs.xml](./docs/doxygen/ie_docs.xml) and add your file path to the appropriate section.
5. Commit changes to your branch.
6. Create a pull request.
7. Once the pull request is created, automatic checks are started. All checks must pass to continue.
8. Discuss, review, and update your contributions.
9. Get merged once the maintainer approves.
### Edit Existing Document
1. Fork the [OpenVINO™ Toolkit](https://github.com/openvinotoolkit/openvino) repository.
2. Create a new branch.
3. Edit the documentation markdown file and commit changes to the branch.
4. Create a pull request.
5. Once the pull request is created, automatic checks are started. All checks must pass to continue.
6. Discuss, review, and update your contributions.
7. Get merged once the maintainer approves.
### Delete Document from the Documentation
1. Fork the [OpenVINO™ Toolkit](https://github.com/openvinotoolkit/openvino) repository.
2. Create a new branch.
3. Remove the documentation file.
4. Remove your file from the documentation structure. Open the documentation structure file [docs/doxygen/ie_docs.xml](./docs/doxygen/ie_docs.xml) and remove all occurences of your file path.
5. Remove all references to that file from other documents or replace with links to alternatives topics (if any).
6. Commit changes to your branch.
7. Create a pull request.
8. Once the pull request is created, automatic checks are started. All checks must pass to continue.
9. Discuss, review, and update your contributions.
This toolkit allows developers to deploy pre-trained deep learning models
through a high-level C++ Inference Engine API integrated with application logic.
This open source version includes two components: namely [Model Optimizer] and
[Inference Engine], as well as CPU, GPU and heterogeneous plugins to accelerate
deep learning inferencing on Intel® CPUs and Intel® Processor Graphics.
This open source version includes several components: namely [Model Optimizer], [nGraph] and
[Inference Engine], as well as CPU, GPU, MYRIAD, multi device and heterogeneous plugins to accelerate deep learning inferencing on Intel® CPUs and Intel® Processor Graphics.
It supports pre-trained models from the [Open Model Zoo], along with 100+ open
source and public models in popular formats such as Caffe\*, TensorFlow\*,
MXNet\* and ONNX\*.
## Repository components:
* [Inference Engine]
* [nGraph]
* [Model Optimizer]
## License
@@ -21,23 +23,19 @@ Deep Learning Deployment Toolkit is licensed under [Apache License Version 2.0](
By contributing to the project, you agree to the license and copyright terms therein
* Raspberry Pi\* 2 or 3 with Raspbian\* Stretch OS (32-bit). Check that it's CPU supports ARMv7 instruction set (`uname -m` command returns `armv7l`).
> **NOTE**: Despite the Raspberry Pi\* CPU is ARMv8, 32-bit OS detects ARMv7 CPU instruction set. The default `gcc` compiler applies ARMv6 architecture flag for compatibility with lower versions of boards. For more information, run the `gcc -Q --help=target` command and refer to the description of the `-march=` option.
You can compile the Inference Engine for Raspberry Pi\* in one of the two ways:
* [Native Compilation](#native-compilation), which is the simplest way, but time-consuming
* [Cross Compilation Using Docker*](#cross-compilation-using-docker), which is the recommended way
### Native Compilation
Native compilation of the Inference Engine is the most straightforward solution. However, it might take at least one hour to complete on Raspberry Pi\* 3.
* `ANDROID_STL` specifies that shared C++ runtime is used. Copy `~/Downloads/android-ndk/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_shared.so` from Android NDK along with built binaries
## Use Custom OpenCV Builds for Inference Engine
> **NOTE**: The recommended and tested version of OpenCV is 4.4.0.
Required versions of OpenCV packages are downloaded automatically during the
building Inference Engine library. If the build script can not find and download
the OpenCV package that is supported on your platform, you can use one of the
following options:
* Download the most suitable version from the list of available pre-build
packages from [https://download.01.org/opencv/2020/openvinotoolkit] from the
`<release_version>/inference_engine` directory.
* Use a system-provided OpenCV package (e.g with running the
`apt install libopencv-dev` command). The following modules must be enabled:
`imgcodecs`, `videoio`, `highgui`.
* Get the OpenCV package using a package manager: pip, conda, conan etc. The
package must have the development components included (header files and CMake
scripts).
* Build OpenCV from source using the [build instructions](https://docs.opencv.org/master/df/d65/tutorial_table_of_content_introduction.html) on the OpenCV site.
After you got the built OpenCV library, perform the following preparation steps
before running the Inference Engine build:
1. Set the `OpenCV_DIR` environment variable to the directory where the
`OpenCVConfig.cmake` file of you custom OpenCV build is located.
2. Disable the package automatic downloading with using the `-DENABLE_OPENCV=OFF`
option for CMake-based build script for Inference Engine.
## Add Inference Engine to Your Project
For CMake projects, set the `InferenceEngine_DIR` environment variable:
The Intel® Distribution of OpenVINO™ toolkit supports neural network model layers in multiple frameworks including TensorFlow*, Caffe*, MXNet*, Kaldi* and ONYX*. The list of known layers is different for each of the supported frameworks. To see the layers supported by your framework, refer to [supported frameworks](../MO_DG/prepare_model/Supported_Frameworks_Layers.md).
The Intel® Distribution of OpenVINO™ toolkit supports neural network models trained with multiple frameworks including
TensorFlow*, Caffe*, MXNet*, Kaldi* and ONNX* file format. The list of supported operations (layers) is different for
each of the supported frameworks. To see the operations supported by your framework, refer to
Custom layers are layers that are not included in the list of known layers. If your topology contains any layers that are not in the list of known layers, the Model Optimizer classifies them as custom.
Custom operations are operations that are not included in the list of known operations. If your model contains any
operation that is not in the list of known operations, the Model Optimizer is not able to generate an Intermediate
Representation (IR) for this model.
This guide illustrates the workflow for running inference on topologies featuring custom layers, allowing you to plug in your own implementation for existing or completely new layers.
For a step-by-step example of creating and executing a custom layer, see the [Custom Layer Implementation Tutorials for Linux and Windows.](https://github.com/david-drew/OpenVINO-Custom-Layers/tree/master/2019.r2.0)
This guide illustrates the workflow for running inference on topologies featuring custom operations, allowing you to
plug in your own implementation for existing or completely new operation.
## Terms used in this guide
> **NOTE:** *Layer* — The legacy term for an *operation* which came from Caffe\* framework. Currently it is not used.
> Refer to the [Deep Learning Network Intermediate Representation and Operation Sets in OpenVINO™](../MO_DG/IR_and_opsets.md)
> for more information on the topic.
- *Layer* — The abstract concept of a math function that is selected for a specific purpose (relu, sigmoid, tanh, convolutional). This is one of a sequential series of building blocks within the neural network.
- *Kernel* — The implementation of a layer function, in this case, the math programmed (in C++ and Python) to perform the layer operation for target hardware (CPU or GPU).
- *Intermediate Representation (IR)* — Neural Network used only by the Inference Engine in OpenVINO abstracting the different frameworks and describing topology, layer parameters and weights.
The original format will be a supported framework such as TensorFlow, Caffe, or MXNet.
## Terms Used in This Guide
- *Model Extension Generator* — Generates template source code files for each of the extensions needed by the Model Optimizer and the Inference Engine.
- *Intermediate Representation (IR)* — Neural Network used only by the Inference Engine in OpenVINO abstracting the
different frameworks and describing the model topology, operations parameters and weights.
- *Operation* — The abstract concept of a math function that is selected for a specific purpose. Operations supported by
OpenVINO™ are listed in the supported operation set provided in the [Available Operations Sets](../ops/opset.md).
Examples of the operations are: [ReLU](../ops/activation/ReLU_1.md), [Convolution](../ops/convolution/Convolution_1.md),
[Add](../ops/arithmetic/Add_1.md), etc.
- *Kernel* — The implementation of a operation function in the OpenVINO™ plugin, in this case, the math programmed (in
C++ and OpenCL) to perform the operation for a target hardware (CPU or GPU).
- *Inference Engine Extension* — Device-specific module implementing custom operations (a set of kernels).
## Custom Operation Support Overview
There are three steps to support inference of a model with custom operation(s):
1. Add support for a custom operation in the [Model Optimizer](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md) so
the Model Optimizer can generate the IR with the operation.
2. Create an operation set and implement a custom nGraph operation in it as described in the
- *Inference Engine Extension* — Device-specific module implementing custom layers (a set of kernels).
As a result the TensorFlow\* frozen model file "wnet_20.pb" is generated.
### Convert the Frozen TensorFlow\* Model to Intermediate Representation
## Custom Layer Overview
The [Model Optimizer](https://docs.openvinotoolkit.org/2019_R1.1/_docs_MO_DG_Deep_Learning_Model_Optimizer_DevGuide.html) searches the list of known layers for each layer contained in the input model topology before building the model's internal representation, optimizing the model, and producing the Intermediate Representation files.
The [Inference Engine](https://docs.openvinotoolkit.org/2019_R1.1/_docs_IE_DG_Deep_Learning_Inference_Engine_DevGuide.html) loads the layers from the input model IR files into the specified device plugin, which will search a list of known layer implementations for the device. If your topology contains layers that are not in the list of known layers for the device, the Inference Engine considers the layer to be unsupported and reports an error. To see the layers that are supported by each device plugin for the Inference Engine, refer to the [Supported Devices](https://docs.openvinotoolkit.org/2019_R1.1/_docs_IE_DG_supported_plugins_Supported_Devices.html) documentation.
<br>
**Note:** If a device doesn't support a particular layer, an alternative to creating a new custom layer is to target an additional device using the HETERO plugin. The [Heterogeneous Plugin](https://docs.openvinotoolkit.org/2019_R1.1/_docs_IE_DG_supported_plugins_HETERO.html) may be used to run an inference model on multiple devices allowing the unsupported layers on one device to "fallback" to run on another device (e.g., CPU) that does support those layers.
## Custom Layer Implementation Workflow
When implementing a custom layer for your pre-trained model in the Intel® Distribution of OpenVINO™ toolkit, you will need to add extensions to both the Model Optimizer and the Inference Engine.
## Custom Layer Extensions for the Model Optimizer
The following figure shows the basic processing steps for the Model Optimizer highlighting the two necessary custom layer extensions, the Custom Layer Extractor and the Custom Layer Operation.

The Model Optimizer first extracts information from the input model which includes the topology of the model layers along with parameters, input and output format, etc., for each layer. The model is then optimized from the various known characteristics of the layers, interconnects, and data flow which partly comes from the layer operation providing details including the shape of the output for each layer. Finally, the optimized model is output to the model IR files needed by the Inference Engine to run the model.
The Model Optimizer starts with a library of known extractors and operations for each [supported model framework](https://docs.openvinotoolkit.org/2019_R1.1/_docs_MO_DG_prepare_model_Supported_Frameworks_Layers.html) which must be extended to use each unknown custom layer. The custom layer extensions needed by the Model Optimizer are:
- Custom Layer Extractor
- Responsible for identifying the custom layer operation and extracting the parameters for each instance of the custom layer. The layer parameters are stored per instance and used by the layer operation before finally appearing in the output IR. Typically the input layer parameters are unchanged, which is the case covered by this tutorial.
- Custom Layer Operation
- Responsible for specifying the attributes that are supported by the custom layer and computing the output shape for each instance of the custom layer from its parameters. <br> The `--mo-op` command-line argument shown in the examples below generates a custom layer operation for the Model Optimizer.
## Custom Layer Extensions for the Inference Engine
The following figure shows the basic flow for the Inference Engine highlighting two custom layer extensions for the CPU and GPU Plugins, the Custom Layer CPU extension and the Custom Layer GPU Extension.

Each device plugin includes a library of optimized implementations to execute known layer operations which must be extended to execute a custom layer. The custom layer extension is implemented according to the target device:
- Custom Layer CPU Extension
- A compiled shared library (.so or .dll binary) needed by the CPU Plugin for executing the custom layer on the CPU.
- Custom Layer GPU Extension
- OpenCL source code (.cl) for the custom layer kernel that will be compiled to execute on the GPU along with a layer description file (.xml) needed by the GPU Plugin for the custom layer kernel.
## Model Extension Generator
Using answers to interactive questions or a *.json* configuration file, the Model Extension Generator tool generates template source code files for each of the extensions needed by the Model Optimizer and the Inference Engine. To complete the implementation of each extension, the template functions may need to be edited to fill-in details specific to the custom layer or the actual custom layer functionality itself.
### Command-line
The Model Extension Generator is included in the Intel® Distribution of OpenVINO™ toolkit installation and is run using the command (here with the "--help" option):
Firstly, open the model in the TensorBoard or other TensorFlow* model visualization tool. The model supports dynamic
batch dimension because the value for the batch dimension is not hardcoded in the model. Model Optimizer need to set all
dynamic dimensions to some specific value to create the IR, therefore specify the command line parameter `-b 1` to set
the batch dimension equal to 1. The actual batch size dimension can be changed at runtime using the Inference Engine API
described in the [Using Shape Inference](../IE_DG/ShapeInference.md). Also refer to
[Converting a Model Using General Conversion Parameters](../MO_DG/prepare_model/convert_model/Converting_Model_General.md)
and [Convert Your TensorFlow* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_TensorFlow.md)
for more details and command line parameters used for the model conversion.
```bash
python3 /opt/intel/openvino/deployment_tools/tools/extension_generator/extgen.py new --help
usage: You can use any combination of the following arguments:
Arguments to configure extension generation in the interactive mode:
optional arguments:
-h, --help show this help message and exit
--mo-caffe-ext generate a Model Optimizer Caffe* extractor
--mo-mxnet-ext generate a Model Optimizer MXNet* extractor
--mo-tf-ext generate a Model Optimizer TensorFlow* extractor
--mo-op generate a Model Optimizer operation
--ie-cpu-ext generate an Inference Engine CPU extension
--ie-gpu-ext generate an Inference Engine GPU extension
--output_dir OUTPUT_DIR
set an output directory. If not specified, the current
directory is used by default.
Model Optimizer produces the following error:
```bash
[ ERROR ] List of operations that cannot be converted to Inference Engine IR:
[ ERROR ] Complex (1)
[ ERROR ] lambda_2/Complex
[ ERROR ] IFFT2D (1)
[ ERROR ] lambda_2/IFFT2D
[ ERROR ] ComplexAbs (1)
[ ERROR ] lambda_2/Abs
[ ERROR ] Part of the nodes was not converted to IR. Stopped.
```
The available command-line arguments are used to specify which extension(s) to generate templates for the Model Optimizer or Inference Engine. The generated extension files for each argument will appear starting from the top of the output directory as follows:
The error means that the Model Optimizer doesn't know how to handle 3 types of TensorFlow\* operations: "Complex",
"IFFT2D" and "ComplexAbs". In order to see more details about the conversion process run the model conversion with
additional parameter `--log_level DEBUG`. It is worth to mention the following lines from the detailed output:
**Step 3: Specify:** Specify the custom layer extension locations to be used by the Model Optimizer or Inference Engine.
This model uses complex numbers during the inference but Inference Engine does not support tensors of this data type. So
it is necessary to find a way how to avoid using tensors of such a type in the model. Fortunately, the complex tensor
appear as a result of "Complex" operation, is used as input in the "IFFT2D" operation then is passed to "ComplexAbs"
which produces real value tensor as output. So there are just 3 operations consuming/producing complex tensors in the
model.
## Caffe\* Models with Custom Layers <a name="caffe-models-with-custom-layers"></a>
Let's design an OpenVINO operation "FFT" which get a single real number tensor describing the complex number and
produces a single real number tensor describing output complex tensor. This way the fact that the model uses complex
numbers is hidden inside the "FFT" operation implementation. The operation gets a tensor of shape `[N, H, W, 2]` and
produces the output tensor with the same shape, where the innermost dimension contains pairs of real numbers describing
the complex number (its real and imaginary part). As we will see further this operation will allow us to support the
model. The implementation of the Model Optimizer operation should be saved to `mo_extensions/ops/FFT.py` file:
If your Caffe\* model has custom layers:
@snippet FFT.py fft:operation
**Register the custom layers as extensions to the Model Optimizer**. For instructions, see [Extending Model Optimizer with New Primitives](../MO_DG/prepare_model/customize_model_optimizer/Extending_Model_Optimizer_with_New_Primitives.md). When your custom layers are registered as extensions, the Model Optimizer generates a valid and optimized Intermediate Representation. You will need a bit of Python\* code that lets the Model Optimizer;
The attribute `inverse` is a flag specifying type of the FFT to apply: forward or inverse.
- Generate a valid Intermediate Representation according to the rules you specified.
- Be independent from the availability of Caffe on your computer.
If your model contains Custom Layers, it is important to understand the internal workflow of the Model Optimizer. Consider the following example.
See the "Model Optimizer Operation" section on the
[Model Optimizer Extensibility](../MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md) for the
detailed instruction on how to implement the operation.
**Example**:
Now it is necessary to implement extractor for the "IFFT2D" operation according to the
"Operation Extractor" section on the
[Model Optimizer Extensibility](../MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md). The
following snippet provides two extractors: one for "IFFT2D", another one for "FFT2D", however only on of them is used
in this example. The implementation should be saved to the file `mo_extensions/front/tf/FFT_ext.py`.
The network has:
@snippet FFT_ext.py fft_ext:extractor
* One input layer (#1)
* One output Layer (#5)
* Three internal layers (#2, 3, 4)
> **NOTE:** The graph is in inconsistent state after extracting node attributes because according to original operation
> "IFFT2D" semantic it should have an input consuming a tensor of complex numbers, but the extractor instantiated an
> operation "FFT" which expects a real tensor with specific layout. But the inconsistency will be resolved during
> applying front phase transformations discussed below.
The custom and standard layer types are:
The output shape of the operation "AddV2" from the picture above is `[N, H, W, 2]`. Where the innermost dimension
contains pairs of real numbers describing the complex number (its real and imaginary part). The following "StridedSlice"
operations split the input tensor into 2 parts to get a tensor of real and a tensor of imaginary parts which are then
consumed with the "Complex" operation to produce a tensor of complex numbers. These "StridedSlice" and "Complex"
operations can be removed so the "FFT" operation will get a real value tensor encoding complex numbers. To achieve this
we implement the front phase transformation which searches for a pattern of two "StridedSlice" operations with specific
attributes producing data to "Complex" operation and removes it from the graph. Refer to the
"Pattern-Defined Front Phase Transformations" section on the
[Model Optimizer Extensibility](../MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md) for more
information on how this type of transformation works. The code snippet should be saved to the file
`mo_extensions/front/tf/Complex.py`.
* Layers #2 and #5 are implemented as Model Optimizer extensions.
* Layers #1 and #4 are supported in Model Optimizer out-of-the box.
* Layer #3 is neither in the list of supported layers nor in extensions, but is specified in CustomLayersMapping.xml.
@snippet Complex.py complex:transformation
> **NOTE**: If any of the layers are not in one of three categories described above, the Model Optimizer fails with an appropriate message and a link to the corresponding question in [Model Optimizer FAQ](../MO_DG/prepare_model/Model_Optimizer_FAQ.md).
> **NOTE:** The graph is in inconsistent state because the "ComplexAbs" operation consumes complex value tensor but
> "FFT" produces real value tensor.
The general process is as shown:
Now lets implement a transformation which replace a "ComplexAbs" operation with a sub-graph of primitive operations
which calculate the result using the following formulae: \f$module(z) = \sqrt{real(z) \cdot real(z) + imag(z) \cdot imag(z)}\f$.
Original "IFFT2D" operation produces tensor of complex values, but the "FFT" operation produces a real value tensor with
the same format and shape as the input for the operation. So the input shape for the "ComplexAbs" will be `[N, H, W, 2]`
with the innermost dimension containing tuple with real and imaginary part of a complex number. In order to calculate
absolute values for the complex tensor we do the following:
1. Raise all elements in the power of 2.
2. Calculate a reduced sum over the innermost dimension.
The implementation should be saved to the file `mo_extensions/front/tf/ComplexAbs.py` and provided below:
**Step 1:** The example model is fed to the Model Optimizer that **loads the model** with the special parser built on top of the `caffe.proto` file. In case of failure, the Model Optimizer asks you to prepare the parser that can read the model. For more information, refer to the Model Optimizer, <ahref="MO_FAQ.html#FAQ1">FAQ #1</a>.
@snippet ComplexAbs.py complex_abs:transformation
**Step 2:** The Model Optimizer **extracts the attributes of all layers** by going through the list of layers and attempting to find the appropriate extractor. In order of priority, the Model Optimizer checks if the layer is:
* A. Registered as a Model Optimizer extension
* B. Registered as a standard Model Optimizer layer
When the Model Optimizer finds a satisfying condition from the list above, it extracts the attributes according to the following rules:
* For A. - takes only the parameters specified in the extension
* For B. - takes only the parameters specified in the standard extractor
<br>
Now it is possible to convert the model using the following command line:
**Step 3:** The Model Optimizer **calculates the output shape of all layers**. The logic is the same as it is for the priorities. **Important:** the Model Optimizer always takes the first available option.
The sub-graph corresponding to the originally non-supported one is depicted on the image below:
**Step 4:** The Model Optimizer **optimizes the original model and produces the two Intermediate Representation (IR) files in .xml and .bin**.
***Register those layers as extensions to the Model Optimizer.** In this case, the Model Optimizer generates a valid and optimized Intermediate Representation.
***If you have sub-graphs that should not be expressed with the analogous sub-graph in the Intermediate Representation, but another sub-graph should appear in the model, the Model Optimizer provides such an option.** This feature is helpful for many TensorFlow models. To read more, see [Sub-graph Replacement in the Model Optimizer](../MO_DG/prepare_model/customize_model_optimizer/Subgraph_Replacement_Model_Optimizer.md).
## MXNet\* Models with Custom Layers <a name="mxnet-models-with-custom-layers"></a>
#### CMake Build File
The first step is to create a CMake configuration file which builds the extension. The content of the "CMakeLists.txt"
file is the following:
There are two options to convert your MXNet* model that contains custom layers:
1. Register the custom layers as extensions to the Model Optimizer. For instructions, see [Extending MXNet Model Optimizer with New Primitives](../MO_DG/prepare_model/customize_model_optimizer/Extending_MXNet_Model_Optimizer_with_New_Primitives.md). When your custom layers are registered as extensions, the Model Optimizer generates a valid and optimized Intermediate Representation. You can create Model Optimizer extensions for both MXNet layers with op `Custom` and layers which are not standard MXNet layers.
The CPU FFT kernel implementation uses OpenCV to perform the FFT that is why the extension library is linked with
"opencv_core" which comes with the OpenVINO.
2. If you have sub-graphs that should not be expressed with the analogous sub-graph in the Intermediate Representation, but another sub-graph should appear in the model, the Model Optimizer provides such an option. In MXNet the function is actively used for ssd models provides an opportunity to for the necessary subgraph sequences and replace them. To read more, see [Sub-graph Replacement in the Model Optimizer](../MO_DG/prepare_model/customize_model_optimizer/Subgraph_Replacement_Model_Optimizer.md).
#### Custom nGraph Operation "FFT" Implementation
The next step is to create the nGraph operation FFT. The header file "fft_op.hpp" has the following content:
## Kaldi\* Models with Custom Layers <a name="Kaldi-models-with-custom-layers"></a>
For information on converting your Kaldi* model containing custom layers see [Converting a Kaldi Model in the Model Optimizer Developer Guide](https://docs.openvinotoolkit.org/latest/_docs_MO_DG_prepare_model_convert_model_Convert_Model_From_Kaldi.html).
## ONNX\* Models with Custom Layers <a name="ONNX-models-with-custom-layers"></a>
For information on converting your ONNX* model containing custom layers see [Converting an ONNX Model in the Model Optimizer Developer Guide](https://docs.openvinotoolkit.org/latest/_docs_MO_DG_prepare_model_convert_model_Convert_Model_From_ONNX.html).
The operation has just one boolean attribute `inverse`. Implementation of the necessary nGraph operation functions are
in the "fft_op.cpp" file with the following content:
## Step-by-Step Custom Layers Tutorial
For a step-by-step walk-through creating and executing a custom layer, see [Custom Layer Implementation Tutorial for Linux and Windows.](https://github.com/david-drew/OpenVINO-Custom-Layers/tree/master/2019.r2.0)
- Intel® Distribution of OpenVINO™ toolkit home page: [https://software.intel.com/en-us/openvino-toolkit](https://software.intel.com/en-us/openvino-toolkit)
- [Kernel Extensivility in the Inference Engine Developer Guide](https://docs.openvinotoolkit.org/latest/_docs_IE_DG_Integrate_your_kernels_into_IE.html)
- [Overview of OpenVINO™ Toolkit Pre-Trained Models](@ref omz_models_group_intel)
- For IoT Libraries and Code Samples see the [Intel® IoT Developer Kit](https://github.com/intel-iot-devkit).
## Converting Models:
- [Convert Your Caffe* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_Caffe.md)
- [Convert Your Kaldi* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_Kaldi.md)
- [Convert Your TensorFlow* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_TensorFlow.md)
- [Convert Your MXNet* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_MxNet.md)
- [Convert Your ONNX* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_ONNX.md)
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.