* Create generic RecurrentSequenceDirection enum.
* Helper class RecurrentSequenceOp.
* Add ONNX GRU & RNN operators.
* Use OutputVector.
* Update doc.
* Add UTs for GRU and skip them on IE_CPU
* Add UT for bidirectional mode and fix it.
* Normalize activation function name case.
* Add unit-tests for RNN operator.
* UT for GRU with linear_before_reset set to true.
* Fix ONNX GRU for linear_before_reset case.
* Remove unnecessary symbol export macro.
* Fix CentOS error.
* Update UTs.
- Update few tests accuracy tolerance
- Update rnn_fwd_activations with new reference values and model.
* Review comment: add check for static shape
* Add UT for RNN with constant inputs W, R.
* Skip UT with const W,R on IE_CPU
* [IE][VPU]: Enables pass for propagating dynamism to network outputs
If network had dynamic output and then myriad Front-End inserted
convert stage at the end (to convert FP16 -> FP32 - output precision)
then dynamism would not be propagated - we have convert stage that
has dynamic input, but static output. As a result, we have run-time
error in Convert kernel: input and output shapes do not match.
At the moment, pass supports only Convert stage as output stage
over which we should propagate dynamism to outputs.
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
* [IE][VPU]: Fixes parse DSR in case of output data
Replacing stage output must be done after replacing
data to shape parent, because the last one may access
original parent producer, but after replacing stage output
it'd not have one.
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
* [IE][VPU]: Fixes MacOS build
* [IE][VPU]: Fixes shape data naming convention
Plugin part assumes that if there is dynamic data object, that's
represented as 2 different data objects (data and shape), then
shape data object has name = data object name + @shape suffix.
Pass that creates new dynamic data object should respect that
assumption.
* [IE][VPU]: Fixes dis-alignment in names of data objects representing dynamic data object
MyriadInferRequest::GetResult assumes that in case of dynamic data object
"data" data object and "shape" data object will have aligned names:
"shape" name = "data" name + "@shape" suffix.
In order to meet that expectation propagating dynamism pass must use output
data object name as prefix. Additionally, propagating pass must be applied
before converting shape notation pass in order to make output shape in IE
notation, not MDK, as MyriadInferRequest::GetResult is expecting.
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
* Update activation layer test
Signed-off-by: Mikhail Treskin <mikhail.treskin@intel.com>
* Get rid of LayerTestsCommonDeprecated class
Signed-off-by: Mikhail Treskin <mikhail.treskin@intel.com>
* Fix activation tests instantiations for gpu and myriad plugins
* Remove leaking inferWithInterp function
WhereDecomposition transform is applied to Where operation in for-garbage sub-graph remained after SparseWeightedSum transform.
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
* implemented depth_to_space transformation
* renaming
* added functional tests, fixed mistakes in implementation of the transformation
* disable ConvertSpaceToDepth/ConvertDepthToSpace transformation for CPU plugin, enable DepthToSpaceFusion for CPU plugin only, add specific creators
* fix wrong include
* fix for functional tests: set transformation callback
* revert callback calls for CPU plugin
* move functions to .cpp file
* Apply review comments
* Apply additional review comments
* fix cast to bool type
* Added explicit calling convention to CAPI callback
* Fixed typo spacing
* Renamed INFERENCE_ENGINE_CALLBACK to INFERENCE_ENGINE_C_API_CALLBAC to make the macro really specific to the C API
* [IE][VPU]: Fixes deallocation data for cases of CMX allocator run
The final loop tries to deallocate data objects that keep shape values for
other data objects that're outputs of a model. But the case when allocator
takes only CMX data into consideration was not handled and since allocation
could not happen, it lead to fail on deallocation of a data object that has
not been allocated.
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
* [IE][VPU]: Fixes allocator with work on data to shape edges
Since there is new relationship between data objects: some
data objects may contain shape of other data object - allocator
must properly respect that. The thing is if 2 data objects are
connected in such a way, they represent unite entity (dynamic
data object) and should have the same lifetime.
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
* * Added ie_core_read_network_from_memory to the C ie_bridge.
* Added size argument for xml_content, fixed const correctness of the weight_blob, fixed unit test
* * Removed debug message
* Changed variables names from model_xxx to weights_xxx to be more consistent with the argument name of the tested function.
* Added a description for xml_content_size in ie_core_read_network_from_memory.
* * xml_content is now passed as uint8_t
* reading function factorized in the unit-test
* Small fix in the transformation ConvertGroupedStridedSlice. Now VariadicSplit is generated only in the case when node has at least 2 output nodes.
* Added unittests for the case when there is only one StridedSlice.