diff --git a/docs/nGraph_DG/nGraphTransformation.md b/docs/nGraph_DG/nGraphTransformation.md
index 03777180ad8..524dbf59c6e 100644
--- a/docs/nGraph_DG/nGraphTransformation.md
+++ b/docs/nGraph_DG/nGraphTransformation.md
@@ -47,7 +47,7 @@ For examples of how to build an nGraph function, see the [Build nGraph Function]
## Transformations types
-nGraph has three main transformation types:
+nGraph has three main transformation types:
* `ngraph::pass::FunctionPass` - straightforward way to work with `ngraph::Function` directly
* `ngraph::pass::MatcherPass` - pattern-based transformation approach
@@ -81,7 +81,7 @@ Template for MatcherPass transformation class
To use `ngraph::pass::MatcherPass`, you need to complete these steps:
1. Create a pattern
-2. Implement a callback
+2. Implement a callback
3. Register the pattern and Matcher
4. Execute MatcherPass
@@ -90,7 +90,7 @@ So let's go through each of these steps.
### Create a pattern
Pattern is a single root `ngraph::Function`. But the only difference is that you do not need to create a function object, you just need to create and connect opset or special pattern operations.
Then you need to take the last created operation and put it as a root of the pattern. This root node will be used as a root node in pattern matching.
-> **NOTE**: Any nodes in a pattern that have no consumers and are not registered as root will not be used in pattern matching.
+> **NOTE**: Any nodes in a pattern that have no consumers and are not registered as root will not be used in pattern matching.
@snippet example_ngraph_utils.cpp pattern:simple_example
@@ -105,7 +105,7 @@ Callback is an action applied to every pattern entrance. In general, callback is
The example above shows the callback structure and how Matcher can be used for accessing nodes detected by pattern.
Callback return value is `true` if root node was replaced and another pattern cannot be applied to the same root node; otherwise, it is `false`.
-> **NOTE**: It is not recommended to manipulate with nodes that are under root node. This may affect GraphRewrite execution as it is expected that all nodes that come after root node in topological order are valid and can be used in pattern matching.
+> **NOTE**: It is not recommended to manipulate with nodes that are under root node. This may affect GraphRewrite execution as it is expected that all nodes that come after root node in topological order are valid and can be used in pattern matching.
MatcherPass also provides functionality that allows reporting of the newly created nodes that can be used in additional pattern matching.
If MatcherPass was registered in `pass::Manager` or `pass::GraphRewrite`, these registered nodes will be added for additional pattern matching.
@@ -144,7 +144,7 @@ Example:
In addition, GraphRewrite handles nodes that were registered by MatcherPasses during their execution. This nodes will be added to the beginning of the sequence with nodes for pattern matching.
-> **NOTE**: when using `pass::Manager` temporary GraphRewrite is used to execute single MatcherPass.
+> **NOTE**: when using `pass::Manager` temporary GraphRewrite is used to execute single MatcherPass.
GraphRewrite has two algorithms for MatcherPasses execution. First algorithm is straightforward. It applies each MatcherPass in registration order to current node.
@@ -153,7 +153,7 @@ GraphRewrite has two algorithms for MatcherPasses execution. First algorithm is
But it is not really efficient when you have a lot of registered passes. So first of all GraphRewrite checks that all MatcherPass patterns has type-based root node (it means that type of this node is not hidden into predicate).
And then creates map from registered MatcherPasses. That helps to avoid additional cost of applying each MatcherPass for each node.
-![graph_rewrite_efficient_search]
+![graph_rewrite_efficient_search]
> **NOTE**: GraphRewrite execution algorithm cannot be set manually and depends only on root nodes registered inside MatcherPasses.
@@ -161,7 +161,7 @@ And then creates map from registered MatcherPasses. That helps to avoid addition
Sometimes patterns cannot be expressed via regular nGraph operations or it is too complicated.
For example, if you want to detect Convolution->Add sub-graph without specifying particular input type for Convolution operation or you want to create a pattern where some of operations can have different types.
-And for these cases nGraph provides additional helpers to construct patterns for GraphRewrite transformations.
+And for these cases nGraph provides additional helpers to construct patterns for GraphRewrite transformations.
There are two main helpers:
1. `ngraph::pattern::any_input` - helps to express inputs if their types are undefined.
@@ -172,7 +172,7 @@ Let's go through the example to have better understanding of how it works:
> **NOTE**: Node attributes do not participate in pattern matching and are needed only for operations creation. Only operation types participate in pattern matching.
The example below shows basic usage of `pattern::any_input`.
-Here we construct Multiply pattern with arbitrary first input and Constant as a second input.
+Here we construct Multiply pattern with arbitrary first input and Constant as a second input.
Also as Multiply is commutative operation, it does not matter in which order we set inputs (any_input/Constant or Constant/any_input) because both cases will be matched.
@snippet example_ngraph_utils.cpp pattern:label_example
@@ -196,7 +196,7 @@ In this chapter we will review nGraph API that allows us to manipulate with `ngr
First of all let's talk about `ngraph::Node` input/output ports. Each nGraph operation has input and output ports except cases when operation has `Result`, `Parameter`, or `Constant` type.
Every port belongs to its node, so using a port we can access parent node, get shape and type for particular input/output, get all consumers in case of output port, and get producer node in case of input port.
-With output port we can set inputs for newly created operations.
+With output port we can set inputs for newly created operations.
Lets look at the code example.
@@ -208,8 +208,8 @@ std::shared_ptr neg_const = opset1::Constant::create(sub->get_input_elemen
Output data = node->input_value(0);
auto neg = std::make_shared(data, neg_const);
```
-In this example, the `opset3::Multiply` operation takes `Output` and `std::shared_ptr` as inputs. But the constructor takes both as `Output`.
-In this case, `std::shared_ptr` will be automatically converted to `Output` if node has exactly one output port; otherwise, conversion raises an exception.
+In this example, the `opset3::Multiply` operation takes `Output` and `std::shared_ptr` as inputs. But the constructor takes both as `Output`.
+In this case, `std::shared_ptr` will be automatically converted to `Output` if node has exactly one output port; otherwise, conversion raises an exception.
### ngraph::Node replacement
@@ -251,9 +251,9 @@ To eliminate operation, nGraph has special method that considers all limitations
@snippet example_ngraph_utils.cpp ngraph:eliminate_node
`replace_output_update_name` in case of successful replacement it automatically preserves friendly name and runtime info.
-
-## Transformation conditional compilation
+
+## Transformation conditional compilation
Transformation library has two internal macros to support conditional compilation feature.
@@ -272,14 +272,14 @@ Use the latest version of OpSet in your transformation. An exception is op_conve
###2. Dynamic Shape and Rank
-nGraph has two types for shape representation:
+nGraph has two types for shape representation:
`ngraph::Shape` - represents static shape.
`ngraph::PartialShape` - represents dynamic shape. It means that rank or some of dimensions are dynamic (undefined).
`ngraph::PartialShape` can be converted to `ngraph::Shape` using the `get_shape()` method if all dimensions are static; otherwise, conversion raises an exception.
@snippet example_ngraph_utils.cpp ngraph:shape
-But in most cases before getting static shape using `get_shape()` method, you need to check that shape is static.
+But in most cases before getting static shape using `get_shape()` method, you need to check that shape is static.
Also if your transformation requires only input shape rank or particular dimension value, please do not use the `get_shape()` method. See the example below demonstrating how to avoid using `get_shape()`
@@ -289,7 +289,7 @@ Not using `get_shape()` method makes your transformation more flexible and appli
###3. Friendly Names
-Each `ngraph::Node` has a unique name (used for nGraph internals) and a friendly name. In transformations we care only about friendly name because it represents the name from intermediate representation (IR).
+Each `ngraph::Node` has a unique name (used for nGraph internals) and a friendly name. In transformations we care only about friendly name because it represents the name from intermediate representation (IR).
Also friendly name is used as output tensor name (until we do not have other way to represent output tensor name) and user code that requests intermediate outputs based on these names.
To avoid losing friendly name when replacing node with other node or subgraph, set the original friendly name to the latest node in replacing subgraph. See the example below.
@@ -306,7 +306,7 @@ In more advanced cases, when replaced operation has several outputs and we add a
###4. Runtime Info
-Runtime info is a map `std::map>` located inside `ngraph::Node` class. It represents additional attributes in `ngraph::Node`.
+Runtime info is a map `std::map` located inside `ngraph::Node` class. It represents additional attributes in `ngraph::Node`.
These attributes can be set by users or by plugins and when executing transformation that changes `ngraph::Function` we need to preserve these attributes as they will not be automatically propagated.
In most cases, transformations have the following types: 1:1 (replace node with another node), 1:N (replace node with a sub-graph), N:1 (fuse sub-graph into a single node), N:M (any other transformation).
Currently, there is no mechanism that automatically detects transformation types, so we need to propagate this runtime information manually. See the examples below.
@@ -331,7 +331,7 @@ ngraph::copy_runtime_info({conv, bias}, {conv_ie});
ngraph::copy_runtime_info({a, b, c}, {e, f});
```
-When transformation has multiple fusions or decompositions, `ngraph::copy_runtime_info` must be called multiple times for each case.
+When transformation has multiple fusions or decompositions, `ngraph::copy_runtime_info` must be called multiple times for each case.
> **Note**: copy_runtime_info removes rt_info from destination nodes. If you want to keep it, you need to specify them in source nodes like this: copy_runtime_info({a, b, c}, {a, b})
@@ -341,12 +341,12 @@ If your transformation inserts constant sub-graphs that need to be folded, do no
The example below shows how constant subgraph can be constructed.
```cpp
-// After ConstantFolding pass Power will be replaced with Constant
+// After ConstantFolding pass Power will be replaced with Constant
auto pow = std::make_shared(
opset3::Constant::create(element::f32, Shape{1}, {2})
opset3::Constant::create(element::f32, Shape{1}, {3}));
auto mul = std::make_shared(input /* not constant input */, pow);
-```
+```
Manual constant folding is more preferable than `ngraph::pass::ConstantFolding()` because it is much faster.
@@ -358,18 +358,18 @@ Below you can find an example of manual constant folding:
In transformation development process:
-* Do not use deprecated nGraph API. Deprecated methods has the `NGRAPH_DEPRECATED` macros in its definition.
+* Do not use deprecated nGraph API. Deprecated methods has the `NGRAPH_DEPRECATED` macros in its definition.
* Do not pass `shared_ptr` as an input for other node if type of node is unknown or it has multiple outputs. Use explicit output port.
* If you replace node with another node that produces different shape, remember that new shape will not be propagated until the first `validate_nodes_and_infer_types` call for `ngraph::Function`. If you are using `pass::Manager`, it will automatically call this method after each transformation execution.
* Do not forget to call the `ngraph::ConstantFolding` pass if your transformation creates constant subgraphs.
* Use latest OpSet if you are not developing downgrade transformation pass.
-* When developing a callback for `ngraph::pass::MatcherPass`, do not change nodes that come after the root node in topological order.
+* When developing a callback for `ngraph::pass::MatcherPass`, do not change nodes that come after the root node in topological order.
## Using pass manager
`ngraph::pass::Manager` is a container class that can store the list of transformations and execute them. The main idea of this class is to have high-level representation for grouped list of transformations.
It can register and apply any [transformation types](#transformations_types) on function.
-In addition, `ngraph::pass::Manager` has extended debug capabilities (find more information in the [how to debug transformations](#how_to_debug_transformations) section).
+In addition, `ngraph::pass::Manager` has extended debug capabilities (find more information in the [how to debug transformations](#how_to_debug_transformations) section).
The example below shows basic usage of `ngraph::pass::Manager`
diff --git a/docs/snippets/InferenceEngine_Caching3.cpp b/docs/snippets/InferenceEngine_Caching3.cpp
index 282d07b1dc9..db6cd89e5c6 100644
--- a/docs/snippets/InferenceEngine_Caching3.cpp
+++ b/docs/snippets/InferenceEngine_Caching3.cpp
@@ -14,7 +14,7 @@ using namespace InferenceEngine;
auto it = std::find(keys.begin(), keys.end(), METRIC_KEY(IMPORT_EXPORT_SUPPORT));
// If metric 'IMPORT_EXPORT_SUPPORT' exists, check it's value
- bool cachingSupported = (it != keys.end()) && ie.GetMetric(deviceName, METRIC_KEY(IMPORT_EXPORT_SUPPORT)).as();
+ auto cachingSupported = (it != keys.end()) && ie.GetMetric(deviceName, METRIC_KEY(IMPORT_EXPORT_SUPPORT)).as();
//! [part3]
return 0;
}
diff --git a/docs/template_plugin/tests/functional/shared_tests_instances/behavior/plugin/core_integration.cpp b/docs/template_plugin/tests/functional/shared_tests_instances/behavior/plugin/core_integration.cpp
index 78cf8bfaecf..83701ec9030 100644
--- a/docs/template_plugin/tests/functional/shared_tests_instances/behavior/plugin/core_integration.cpp
+++ b/docs/template_plugin/tests/functional/shared_tests_instances/behavior/plugin/core_integration.cpp
@@ -130,10 +130,10 @@ TEST_F(IEClassGetConfigTestTEMPLATE, smoke_GetConfigNoThrow) {
std::string defaultDeviceID = ie.GetConfig(deviceName, CONFIG_KEY(DEVICE_ID));
std::cout << CONFIG_KEY(DEVICE_ID) << " : " << defaultDeviceID << std::endl;
} else if (CONFIG_KEY(PERF_COUNT) == confKey) {
- bool defaultPerfCount = ie.GetConfig(deviceName, CONFIG_KEY(PERF_COUNT)).as();
+ auto defaultPerfCount = ie.GetConfig(deviceName, CONFIG_KEY(PERF_COUNT)).as();
std::cout << CONFIG_KEY(PERF_COUNT) << " : " << defaultPerfCount << std::endl;
} else if (CONFIG_KEY(EXCLUSIVE_ASYNC_REQUESTS) == confKey) {
- bool defaultExclusive = ie.GetConfig(deviceName, CONFIG_KEY(EXCLUSIVE_ASYNC_REQUESTS)).as();
+ auto defaultExclusive = ie.GetConfig(deviceName, CONFIG_KEY(EXCLUSIVE_ASYNC_REQUESTS)).as();
std::cout << CONFIG_KEY(EXCLUSIVE_ASYNC_REQUESTS) << " : " << defaultExclusive << std::endl;
}
}
diff --git a/inference-engine/src/mkldnn_plugin/mkldnn_graph_dumper.cpp b/inference-engine/src/mkldnn_plugin/mkldnn_graph_dumper.cpp
index 4ffa1845f6c..aae2495bb2a 100644
--- a/inference-engine/src/mkldnn_plugin/mkldnn_graph_dumper.cpp
+++ b/inference-engine/src/mkldnn_plugin/mkldnn_graph_dumper.cpp
@@ -186,7 +186,7 @@ std::shared_ptr dump_graph_as_ie_ngraph_net(const MKLDNNGraph
}
for (auto && kvp : meta_data)
- return_node->get_rt_info()[kvp.first] = std::make_shared<::ngraph::VariantWrapper>(kvp.second);
+ return_node->get_rt_info()[kvp.first] = std::make_shared<::ov::RuntimeAttributeWrapper>(kvp.second);
return_node->set_friendly_name(node->getName());
return return_node;
diff --git a/inference-engine/src/mkldnn_plugin/mkldnn_node.cpp b/inference-engine/src/mkldnn_plugin/mkldnn_node.cpp
index 11fe2d4006b..03b2156e183 100644
--- a/inference-engine/src/mkldnn_plugin/mkldnn_node.cpp
+++ b/inference-engine/src/mkldnn_plugin/mkldnn_node.cpp
@@ -137,7 +137,7 @@ MKLDNNNode::MKLDNNNode(const std::shared_ptr& op, const mkldnn::en
}
if (op != nullptr) {
- std::string inputMemoryFormats = ngraph::getMLKDNNInputMemoryFormats(op);
+ std::string inputMemoryFormats = ngraph::getMKLDNNInputMemoryFormats(op);
if (!inputMemoryFormats.empty()) {
std::istringstream stream(inputMemoryFormats);
std::string str;
@@ -148,7 +148,7 @@ MKLDNNNode::MKLDNNNode(const std::shared_ptr& op, const mkldnn::en
}
}
- std::string outputMemoryFormats = ngraph::getMLKDNNOutputMemoryFormats(op);
+ std::string outputMemoryFormats = ngraph::getMKLDNNOutputMemoryFormats(op);
if (!outputMemoryFormats.empty()) {
std::istringstream stream(outputMemoryFormats);
std::string str;
@@ -162,7 +162,7 @@ MKLDNNNode::MKLDNNNode(const std::shared_ptr& op, const mkldnn::en
const auto it = rtInfo.find("enforceBF16evenForGraphTail");
if (it != rtInfo.end()) {
- if (const auto value = std::dynamic_pointer_cast>(it->second))
+ if (const auto value = std::dynamic_pointer_cast>(it->second))
enforceBF16evenForGraphTail = value->get();
}
}
diff --git a/inference-engine/src/mkldnn_plugin/ngraph_transformations/rnn_sequences_optimization.cpp b/inference-engine/src/mkldnn_plugin/ngraph_transformations/rnn_sequences_optimization.cpp
index 0b81fdcc81e..8a6c9fbbe8e 100644
--- a/inference-engine/src/mkldnn_plugin/ngraph_transformations/rnn_sequences_optimization.cpp
+++ b/inference-engine/src/mkldnn_plugin/ngraph_transformations/rnn_sequences_optimization.cpp
@@ -67,7 +67,7 @@ namespace {
ngraph::replace_node(transposeAfter, {reshape2->output(0)});
}
- sequenceOp->get_rt_info()["seqAxis"] = std::make_shared>(seqAxis);
+ sequenceOp->get_rt_info()["seqAxis"] = std::make_shared>(seqAxis);
return true;
}
diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_rnn.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_rnn.cpp
index 7c3e3eb2c20..76e20434d1e 100644
--- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_rnn.cpp
+++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_rnn.cpp
@@ -367,7 +367,7 @@ void MKLDNNRNN::initSeq(const std::shared_ptr& op) {
const auto rtInfo = op->get_rt_info();
if (rtInfo.count("seqAxis")) {
- nativeOrder = std::dynamic_pointer_cast>(rtInfo.at("seqAxis"))->get() == 0;
+ nativeOrder = std::dynamic_pointer_cast>(rtInfo.at("seqAxis"))->get() == 0;
}
out_data_dims.erase(out_data_dims.begin() + 1);
diff --git a/inference-engine/src/mkldnn_plugin/utils/ngraph_utils.hpp b/inference-engine/src/mkldnn_plugin/utils/ngraph_utils.hpp
index 08ae121a7db..fe27efb885d 100644
--- a/inference-engine/src/mkldnn_plugin/utils/ngraph_utils.hpp
+++ b/inference-engine/src/mkldnn_plugin/utils/ngraph_utils.hpp
@@ -13,7 +13,7 @@ namespace MKLDNNPlugin {
inline std::string getRTInfoValue(const std::map& rtInfo, std::string paramName) {
auto it = rtInfo.find(paramName);
if (it != rtInfo.end()) {
- auto value = std::dynamic_pointer_cast>(it->second);
+ auto value = std::dynamic_pointer_cast>(it->second);
return value->get();
} else {
return "";
@@ -23,10 +23,13 @@ inline std::string getRTInfoValue(const std::map& rtInfo,
inline std::string getPrimitivesPriorityValue(const std::shared_ptr &node) {
const auto &rtInfo = node->get_rt_info();
- if (!rtInfo.count(ov::PrimitivesPriority::get_type_info_static())) return "";
+ auto it_info = rtInfo.find(ov::PrimitivesPriority::get_type_info_static());
- const auto &attr = rtInfo.at(ov::PrimitivesPriority::get_type_info_static());
- return ngraph::as_type_ptr(attr)->get();
+ if (it_info == rtInfo.end()) {
+ return {};
+ }
+
+ return it_info->second.as().value;
}
template
diff --git a/inference-engine/src/mkldnn_plugin/utils/rt_info/memory_formats_attribute.cpp b/inference-engine/src/mkldnn_plugin/utils/rt_info/memory_formats_attribute.cpp
index 5dca9699645..9217816bca7 100644
--- a/inference-engine/src/mkldnn_plugin/utils/rt_info/memory_formats_attribute.cpp
+++ b/inference-engine/src/mkldnn_plugin/utils/rt_info/memory_formats_attribute.cpp
@@ -11,25 +11,25 @@
using namespace ngraph;
using namespace ov;
-MLKDNNInputMemoryFormats::~MLKDNNInputMemoryFormats() = default;
+MKLDNNInputMemoryFormats::~MKLDNNInputMemoryFormats() = default;
-std::string ngraph::getMLKDNNInputMemoryFormats(const std::shared_ptr& node) {
- auto it_info = node->get_rt_info().find(MLKDNNInputMemoryFormatsAttr);
+std::string ngraph::getMKLDNNInputMemoryFormats(const std::shared_ptr& node) {
+ auto it_info = node->get_rt_info().find(MKLDNNInputMemoryFormats::get_type_info_static());
if (it_info != node->get_rt_info().end()) {
- if (auto ptr = it_info->second.as>()) {
- return ptr->getMemoryFormats();
+ if (it_info->second.is()) {
+ return it_info->second.as().getMemoryFormats();
}
}
return {};
}
-MLKDNNOutputMemoryFormats::~MLKDNNOutputMemoryFormats() = default;
+MKLDNNOutputMemoryFormats::~MKLDNNOutputMemoryFormats() = default;
-std::string ngraph::getMLKDNNOutputMemoryFormats(const std::shared_ptr& node) {
- auto it_info = node->get_rt_info().find(MLKDNNOutputMemoryFormatsAttr);
+std::string ngraph::getMKLDNNOutputMemoryFormats(const std::shared_ptr& node) {
+ auto it_info = node->get_rt_info().find(MKLDNNOutputMemoryFormats::get_type_info_static());
if (it_info != node->get_rt_info().end()) {
- if (auto ptr = it_info->second.as>()) {
- return ptr->getMemoryFormats();
+ if (it_info->second.is()) {
+ return it_info->second.as().getMemoryFormats();
}
}
return {};
diff --git a/inference-engine/src/mkldnn_plugin/utils/rt_info/memory_formats_attribute.hpp b/inference-engine/src/mkldnn_plugin/utils/rt_info/memory_formats_attribute.hpp
index c2e7498bb58..ea5611558b6 100644
--- a/inference-engine/src/mkldnn_plugin/utils/rt_info/memory_formats_attribute.hpp
+++ b/inference-engine/src/mkldnn_plugin/utils/rt_info/memory_formats_attribute.hpp
@@ -12,30 +12,28 @@
namespace ngraph {
-constexpr const char *MLKDNNInputMemoryFormatsAttr = "MLKDNNInputMemoryFormats";
-constexpr const char *MLKDNNOutputMemoryFormatsAttr = "MLKDNNOutputMemoryFormats";
+constexpr const char *MKLDNNInputMemoryFormatsAttr = "MKLDNNInputMemoryFormats";
+constexpr const char *MKLDNNOutputMemoryFormatsAttr = "MKLDNNOutputMemoryFormats";
template
-class MLKDNNMemoryFormats : public Variant {
+class MKLDNNMemoryFormats : public ov::RuntimeAttribute {
protected:
std::string memory_format;
public:
- MLKDNNMemoryFormats() = default;
- explicit MLKDNNMemoryFormats(const std::string &_memory_format) : memory_format(_memory_format) {}
+ MKLDNNMemoryFormats() = default;
+ explicit MKLDNNMemoryFormats(const std::string &_memory_format) : memory_format(_memory_format) {}
std::string getMemoryFormats() const { return memory_format; }
- ov::Any merge(const ngraph::NodeVector & nodes) override {
+ ov::Any merge(const ngraph::NodeVector & nodes) const override {
std::set unique_mem_format;
for (auto &node : nodes) {
- auto it_info = node->get_rt_info().find(MemoryFormat::get_type_info_static().name);
+ auto it_info = node->get_rt_info().find(MemoryFormat::get_type_info_static());
if (it_info != node->get_rt_info().end()) {
- if (auto ptr = it_info->second.template as>()) {
- std::string mem_format = ptr->getMemoryFormats();
- if (!mem_format.empty()) {
- unique_mem_format.insert(mem_format);
- }
+ std::string mem_format = it_info->second.template as().getMemoryFormats();
+ if (!mem_format.empty()) {
+ unique_mem_format.insert(mem_format);
}
}
}
@@ -50,28 +48,28 @@ public:
if (unique_mem_format.size() == 1) {
final_mem_format = *unique_mem_format.begin();
}
- return std::make_shared(final_mem_format);
+ return MemoryFormat{final_mem_format};
}
};
-class MLKDNNInputMemoryFormats : public MLKDNNMemoryFormats {
+class MKLDNNInputMemoryFormats : public MKLDNNMemoryFormats {
public:
- OPENVINO_RTTI(MLKDNNInputMemoryFormatsAttr);
- MLKDNNInputMemoryFormats() = default;
- explicit MLKDNNInputMemoryFormats(const std::string &_memory_format) : MLKDNNMemoryFormats(_memory_format) {}
- ~MLKDNNInputMemoryFormats() override;
+ OPENVINO_RTTI(MKLDNNInputMemoryFormatsAttr);
+ MKLDNNInputMemoryFormats() = default;
+ explicit MKLDNNInputMemoryFormats(const std::string &_memory_format) : MKLDNNMemoryFormats(_memory_format) {}
+ ~MKLDNNInputMemoryFormats() override;
};
-std::string getMLKDNNInputMemoryFormats(const std::shared_ptr& node);
+std::string getMKLDNNInputMemoryFormats(const std::shared_ptr& node);
-class MLKDNNOutputMemoryFormats : public MLKDNNMemoryFormats {
+class MKLDNNOutputMemoryFormats : public MKLDNNMemoryFormats {
public:
- OPENVINO_RTTI(MLKDNNOutputMemoryFormatsAttr);
- MLKDNNOutputMemoryFormats() = default;
- explicit MLKDNNOutputMemoryFormats(const std::string &_memory_format) : MLKDNNMemoryFormats(_memory_format) {}
- ~MLKDNNOutputMemoryFormats() override;
+ OPENVINO_RTTI(MKLDNNOutputMemoryFormatsAttr);
+ MKLDNNOutputMemoryFormats() = default;
+ explicit MKLDNNOutputMemoryFormats(const std::string &_memory_format) : MKLDNNMemoryFormats(_memory_format) {}
+ ~MKLDNNOutputMemoryFormats() override;
};
-std::string getMLKDNNOutputMemoryFormats(const std::shared_ptr& node);
+std::string getMKLDNNOutputMemoryFormats(const std::shared_ptr& node);
} // namespace ngraph
diff --git a/inference-engine/src/offline_transformations/include/mask_attribute.hpp b/inference-engine/src/offline_transformations/include/mask_attribute.hpp
index 4c74a64c074..0d57808949b 100644
--- a/inference-engine/src/offline_transformations/include/mask_attribute.hpp
+++ b/inference-engine/src/offline_transformations/include/mask_attribute.hpp
@@ -16,7 +16,6 @@
#include
#include
-#include
namespace ngraph {
@@ -28,6 +27,11 @@ namespace ngraph {
class Mask : public std::vector>,
public std::enable_shared_from_this {
public:
+ static const ::ov::DiscreteTypeInfo& get_type_info_static() {
+ static const ::ov::DiscreteTypeInfo type_info{"Mask", 0, "0"};
+ return type_info;
+ }
+
using Ptr = std::shared_ptr;
Mask() = default;
@@ -180,6 +184,7 @@ public:
item.clear();
}
}
+
private:
bool m_is_shape_like{false};
@@ -199,22 +204,3 @@ Mask::Ptr getMask(const Output & output);
void setMask(Output output, const Mask::Ptr & mask);
} // namespace ngraph
-
-namespace ov {
-
-extern template class VariantImpl;
-
-template<>
-class VariantWrapper : public VariantImpl {
-public:
- OPENVINO_RTTI("VariantWrapper");
- BWDCMP_RTTI_DECLARATION;
-
- static std::shared_ptr> create(const value_type & value) {
- return std::make_shared>(value);
- }
-
- explicit VariantWrapper(const value_type &value) : VariantImpl(value) {}
-};
-
-} // namespace ov
diff --git a/inference-engine/src/offline_transformations/src/pruning/mask_attribute.cpp b/inference-engine/src/offline_transformations/src/pruning/mask_attribute.cpp
index 9ee1c023137..90f79e049f9 100644
--- a/inference-engine/src/offline_transformations/src/pruning/mask_attribute.cpp
+++ b/inference-engine/src/offline_transformations/src/pruning/mask_attribute.cpp
@@ -14,28 +14,22 @@ namespace ngraph {
Mask::Ptr getMask(const Output & output) {
auto &rtInfo = output.get_rt_info();
- using MaskWrapper = VariantWrapper;
+ if (!rtInfo.count(Mask::get_type_info_static())) return nullptr;
- if (!rtInfo.count(MaskWrapper::get_type_info_static().name)) return nullptr;
-
- const auto &attr = rtInfo.at(MaskWrapper::get_type_info_static().name);
- return ov::as_type_ptr(attr)->get();
+ const auto &attr = rtInfo.at(Mask::get_type_info_static());
+ return attr.as();
}
Mask::Ptr getMask(const Output & output) {
auto &rtInfo = output.get_rt_info();
- using MaskWrapper = VariantWrapper;
-
- if (!rtInfo.count(MaskWrapper::get_type_info_static().name)) return nullptr;
-
- const auto &attr = rtInfo.at(MaskWrapper::get_type_info_static().name);
- return ov::as_type_ptr(attr)->get();
+ if (!rtInfo.count(Mask::get_type_info_static())) return nullptr;
+ const auto &attr = rtInfo.at(Mask::get_type_info_static());
+ return attr.as();
}
void setMask(Output output, const Mask::Ptr & mask) {
auto &rtInfo = output.get_rt_info();
- using MaskWrapper = VariantWrapper;
- rtInfo[MaskWrapper::get_type_info_static().name] = MaskWrapper::create(mask);
+ rtInfo[Mask::get_type_info_static()] = mask;
}
std::ostream & operator<< (std::ostream & out, const Mask & mask) {
@@ -54,11 +48,3 @@ std::ostream & operator<< (std::ostream & out, const Mask & mask) {
}
} // namespace ngraph
-
-namespace ov {
-
-template class ngraph::VariantImpl;
-
-BWDCMP_RTTI_DEFINITION(VariantWrapper);
-
-} // namespace ov
diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/rt_info_deserialization.cpp b/inference-engine/tests/functional/inference_engine/ir_serialization/rt_info_deserialization.cpp
index 2ba736b3090..c8c14c7b7d7 100644
--- a/inference-engine/tests/functional/inference_engine/ir_serialization/rt_info_deserialization.cpp
+++ b/inference-engine/tests/functional/inference_engine/ir_serialization/rt_info_deserialization.cpp
@@ -40,7 +40,7 @@ protected:
ov::frontend::FrontEnd::Ptr FE;
ov::frontend::InputModel::Ptr inputModel;
- ov::VariantVector params{ov::make_variant(&modelStream)};
+ ov::RuntimeAttributeVector params{&modelStream};
FE = manager.load_by_model(params);
if (FE)
@@ -119,7 +119,7 @@ TEST_F(RTInfoDeserialization, NodeV10) {
ASSERT_NE(nullptr, f);
auto check_rt_info = [](const RTMap& info) {
- const std::string& key = VariantWrapper::get_type_info_static();
+ const std::string& key = ngraph::FusedNames::get_type_info_static();
EXPECT_FALSE(info.count(key));
const std::string& key_old_api_order = ov::OldApiMapOrder::get_type_info_static();
@@ -278,7 +278,7 @@ TEST_F(RTInfoDeserialization, InputAndOutputV10) {
ASSERT_NE(nullptr, f);
auto check_rt_info = [](const RTMap& info) {
- const std::string& key = VariantWrapper::get_type_info_static();
+ const std::string& key = ngraph::FusedNames::get_type_info_static();
ASSERT_FALSE(info.count(key));
};
@@ -421,27 +421,22 @@ TEST_F(RTInfoDeserialization, NodeV11) {
ASSERT_NE(nullptr, f);
auto check_fused_names = [](const RTMap& info, const std::string& names) {
- const std::string& key = VariantWrapper::get_type_info_static();
+ const std::string& key = ngraph::FusedNames::get_type_info_static();
ASSERT_TRUE(info.count(key));
- auto fused_names_attr = std::dynamic_pointer_cast>(info.at(key));
- ASSERT_TRUE(fused_names_attr);
- EXPECT_EQ(fused_names_attr->get().getNames(), names);
+ auto fused_names_attr = info.at(key).as();
+ EXPECT_EQ(fused_names_attr.getNames(), names);
};
auto check_old_api_map_order = [](const RTMap & info, const std::vector & order) {
const std::string & old_api_map_key = ov::OldApiMapOrder::get_type_info_static();
ASSERT_TRUE(info.count(old_api_map_key));
- auto old_api_map_attr = std::dynamic_pointer_cast(info.at(old_api_map_key));
- ASSERT_TRUE(old_api_map_attr);
- auto old_api_map_attr_val = old_api_map_attr->get();
+ auto old_api_map_attr_val = info.at(old_api_map_key).as().value;
EXPECT_EQ(old_api_map_attr_val, order);
};
auto check_old_api_map_type = [](const RTMap & info, const ngraph::element::Type& type) {
const std::string & old_api_map_key = ov::OldApiMapElementType::get_type_info_static();
ASSERT_TRUE(info.count(old_api_map_key));
- auto old_api_map_attr = std::dynamic_pointer_cast(info.at(old_api_map_key));
- ASSERT_TRUE(old_api_map_attr);
- auto old_api_map_attr_val = old_api_map_attr->get();
+ auto old_api_map_attr_val = info.at(old_api_map_key).as().value;
EXPECT_EQ(old_api_map_attr_val, type);
};
@@ -501,8 +496,7 @@ TEST_F(RTInfoDeserialization, NodeV11) {
auto round = std::make_shared(convert_param,
ngraph::opset8::Round::RoundMode::HALF_TO_EVEN);
// TODO: runtime information should migrate as well?
- round->get_rt_info()[VariantWrapper::get_type_info_static()] =
- std::make_shared>(ngraph::FusedNames("Round1,Round2"));
+ round->get_rt_info()[ngraph::FusedNames::get_type_info_static()] = ngraph::FusedNames("Round1,Round2");
// TODO: No guarantee that exactly 'convert, then transpose' will be added by implicit post-processing
auto constant_result = std::make_shared(ngraph::element::u64,
@@ -722,20 +716,20 @@ TEST_F(RTInfoDeserialization, InputAndOutputV11) {
check_version(f, 11);
auto check_fused_names = [](const RTMap& info, const std::string& names) {
- const std::string& key = VariantWrapper::get_type_info_static();
+ const std::string& key = ngraph::FusedNames::get_type_info_static();
ASSERT_TRUE(info.count(key));
- auto fused_names_attr = std::dynamic_pointer_cast>(info.at(key));
- ASSERT_TRUE(fused_names_attr);
- ASSERT_EQ(fused_names_attr->get().getNames(), names);
+ auto fused_names_attr = info.at(key).as();
+ ASSERT_EQ(fused_names_attr.getNames(), names);
};
auto param = f->get_parameters()[0];
check_fused_names(param->output(0).get_rt_info(), "test1,test2");
EXPECT_EQ(param->get_layout(), "NCHW");
- auto var0 = std::dynamic_pointer_cast(
- f->input(0).get_rt_info()[ov::preprocess::TensorInfoMemoryType::get_type_info_static()]);
- EXPECT_EQ(var0->get(), "test_memory_type");
+ auto var0 = f->input(0).get_rt_info()
+ .at(ov::preprocess::TensorInfoMemoryType::get_type_info_static())
+ .as().value;
+ EXPECT_EQ(var0, "test_memory_type");
auto result = f->get_result();
check_fused_names(result->input(0).get_rt_info(), "test5,test6");
diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/rt_info_serialization.cpp b/inference-engine/tests/functional/inference_engine/ir_serialization/rt_info_serialization.cpp
index 8f32c89d1ec..e3cf7db8ae9 100644
--- a/inference-engine/tests/functional/inference_engine/ir_serialization/rt_info_serialization.cpp
+++ b/inference-engine/tests/functional/inference_engine/ir_serialization/rt_info_serialization.cpp
@@ -34,7 +34,7 @@ protected:
ov::frontend::FrontEnd::Ptr FE;
ov::frontend::InputModel::Ptr inputModel;
- ov::VariantVector params{ov::make_variant(model_path), ov::make_variant(weights_path)};
+ ov::RuntimeAttributeVector params{model_path, weights_path};
FE = manager.load_by_model(params);
if (FE)
@@ -51,16 +51,12 @@ private:
};
TEST_F(RTInfoSerializationTest, all_attributes_latest) {
- auto init_info = [](RTMap& info) {
- info[VariantWrapper::get_type_info_static()] =
- std::make_shared>(ngraph::FusedNames("add"));
- info[ov::PrimitivesPriority::get_type_info_static()] =
- std::make_shared("priority");
- info[ov::OldApiMapOrder::get_type_info_static()] =
- std::make_shared(std::vector{0, 2, 3, 1});
- info[ov::OldApiMapElementType::get_type_info_static()] = std::make_shared(
- ngraph::element::Type_t::f32);
- info[ov::Decompression::get_type_info_static()] = std::make_shared();
+ auto init_info = [](RTMap & info) {
+ info[ngraph::FusedNames::get_type_info_static()] = ngraph::FusedNames("add");
+ info[ov::PrimitivesPriority::get_type_info_static()] = ov::PrimitivesPriority("priority");
+ info[ov::OldApiMapOrder::get_type_info_static()] = ov::OldApiMapOrder(std::vector{0, 2, 3, 1});
+ info[ov::OldApiMapElementType::get_type_info_static()] = ov::OldApiMapElementType(ngraph::element::Type_t::f32);
+ info[ov::Decompression::get_type_info_static()] = ov::Decompression{};
};
std::shared_ptr function;
@@ -85,36 +81,29 @@ TEST_F(RTInfoSerializationTest, all_attributes_latest) {
ASSERT_NE(nullptr, f);
auto check_info = [](const RTMap & info) {
- const std::string & key = VariantWrapper::get_type_info_static();
+ const std::string & key = ngraph::FusedNames::get_type_info_static();
ASSERT_TRUE(info.count(key));
- auto fused_names_attr = std::dynamic_pointer_cast>(info.at(key));
- ASSERT_TRUE(fused_names_attr);
- ASSERT_EQ(fused_names_attr->get().getNames(), "add");
+ auto fused_names_attr = info.at(key).as();
+ ASSERT_EQ(fused_names_attr.getNames(), "add");
const std::string & pkey = ov::PrimitivesPriority::get_type_info_static();
ASSERT_TRUE(info.count(pkey));
- auto primitives_priority_attr = std::dynamic_pointer_cast(info.at(pkey));
- ASSERT_TRUE(primitives_priority_attr);
- ASSERT_EQ(primitives_priority_attr->get(), "priority");
+ auto primitives_priority_attr = info.at(pkey).as().value;
+ ASSERT_EQ(primitives_priority_attr, "priority");
const std::string & old_api_map_key_order = ov::OldApiMapOrder::get_type_info_static();
ASSERT_TRUE(info.count(old_api_map_key_order));
- auto old_api_map_attr = std::dynamic_pointer_cast(info.at(old_api_map_key_order));
- ASSERT_TRUE(old_api_map_attr);
- auto old_api_map_attr_val = old_api_map_attr->get();
+ auto old_api_map_attr_val = info.at(old_api_map_key_order).as().value;
ASSERT_EQ(old_api_map_attr_val, std::vector({0, 2, 3, 1}));
const std::string & old_api_map_key = ov::OldApiMapElementType::get_type_info_static();
ASSERT_TRUE(info.count(old_api_map_key));
- auto old_api_map_type = std::dynamic_pointer_cast(info.at(old_api_map_key));
- ASSERT_TRUE(old_api_map_type);
- auto old_api_map_type_val = old_api_map_type->get();
+ auto old_api_map_type_val = info.at(old_api_map_key).as().value;
ASSERT_EQ(old_api_map_type_val, ngraph::element::Type_t::f32);
const std::string& dkey = ov::Decompression::get_type_info_static();
ASSERT_TRUE(info.count(dkey));
- auto decompression_attr = std::dynamic_pointer_cast(info.at(dkey));
- ASSERT_TRUE(decompression_attr);
+ ASSERT_NO_THROW(info.at(dkey).as());
};
auto add = f->get_results()[0]->get_input_node_ptr(0);
@@ -128,10 +117,8 @@ TEST_F(RTInfoSerializationTest, all_attributes_latest) {
TEST_F(RTInfoSerializationTest, all_attributes_v10) {
auto init_info = [](RTMap & info) {
- info[VariantWrapper::get_type_info_static()] =
- std::make_shared>(ngraph::FusedNames("add"));
- info[ov::PrimitivesPriority::get_type_info_static()] =
- std::make_shared("priority");
+ info[ngraph::FusedNames::get_type_info_static()] = ngraph::FusedNames("add");
+ info["PrimitivesPriority"] = ov::PrimitivesPriority("priority");
};
std::shared_ptr function;
@@ -154,7 +141,7 @@ TEST_F(RTInfoSerializationTest, all_attributes_v10) {
ASSERT_NE(nullptr, f);
auto check_info = [](const RTMap & info) {
- const std::string & key = VariantWrapper::get_type_info_static();
+ const std::string & key = ngraph::FusedNames::get_type_info_static();
ASSERT_FALSE(info.count(key));
};
@@ -168,10 +155,8 @@ TEST_F(RTInfoSerializationTest, all_attributes_v10) {
TEST_F(RTInfoSerializationTest, all_attributes_v11) {
auto init_info = [](RTMap & info) {
- info[VariantWrapper::get_type_info_static()] =
- std::make_shared>(ngraph::FusedNames("add"));
- info[ov::PrimitivesPriority::get_type_info_static()] =
- std::make_shared("priority");
+ info[ngraph::FusedNames::get_type_info_static()] = ngraph::FusedNames("add");
+ info[ov::PrimitivesPriority::get_type_info_static()] = ov::PrimitivesPriority("priority");
};
std::shared_ptr function;
@@ -199,24 +184,23 @@ TEST_F(RTInfoSerializationTest, all_attributes_v11) {
ASSERT_NE(nullptr, f);
auto check_info = [](const RTMap & info) {
- const std::string & key = VariantWrapper::get_type_info_static();
+ const std::string & key = ngraph::FusedNames::get_type_info_static();
ASSERT_TRUE(info.count(key));
- auto fused_names_attr = std::dynamic_pointer_cast>(info.at(key));
- ASSERT_TRUE(fused_names_attr);
- ASSERT_EQ(fused_names_attr->get().getNames(), "add");
+ auto fused_names_attr = info.at(key).as();
+ ASSERT_EQ(fused_names_attr.getNames(), "add");
const std::string & pkey = ov::PrimitivesPriority::get_type_info_static();
ASSERT_TRUE(info.count(pkey));
- auto primitives_priority_attr = std::dynamic_pointer_cast(info.at(pkey));
- ASSERT_TRUE(primitives_priority_attr);
- ASSERT_EQ(primitives_priority_attr->get(), "priority");
+ auto primitives_priority_attr = info.at(pkey).as().value;
+ ASSERT_EQ(primitives_priority_attr, "priority");
};
auto add = f->get_results()[0]->get_input_node_ptr(0);
EXPECT_EQ(f->get_parameters()[0]->get_layout(), "NCHW");
- auto var0 = std::dynamic_pointer_cast(
- f->input(0).get_rt_info()[ov::preprocess::TensorInfoMemoryType::get_type_info_static()]);
- EXPECT_EQ(var0->get(), "test_memory_type");
+ auto var0 = f->input(0).get_rt_info()
+ .at(ov::preprocess::TensorInfoMemoryType::get_type_info_static())
+ .as().value;
+ EXPECT_EQ(var0, "test_memory_type");
EXPECT_EQ(f->get_results()[0]->get_layout(), "????");
check_info(add->get_rt_info());
check_info(add->input(0).get_rt_info());
diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_transformation.cpp b/inference-engine/tests/functional/inference_engine/lp_transformations/concat_transformation.cpp
index 9073e67100a..7b2480a42a9 100644
--- a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_transformation.cpp
+++ b/inference-engine/tests/functional/inference_engine/lp_transformations/concat_transformation.cpp
@@ -199,9 +199,9 @@ public:
testValues.result.convert2,
testValues.result.dequantization2,
{
- make_shared_attribute_ptr(true),
- make_shared_attribute_ptr(interval, 256),
- make_shared_attribute_ptr(false)
+ PrecisionPreservedAttribute(true),
+ IntervalsAlignmentAttribute(interval, 256),
+ QuantizationAlignmentAttribute(false)
},
testValues.result.precisionAfterOperation,
testValues.result.dequantizationAfter,
@@ -235,13 +235,13 @@ TEST_P(ConcatTransformation, CompareFunctions) {
ConcatTransformationTestValues testValues = std::get<2>(GetParam());
const auto actualFakeQuantizes = LayerTransformation::get(actualFunction);
if (testValues.axis == 1) {
- ASSERT_TRUE(checkIfOutputAttributesSharedValuesAreTheSame>(actualFakeQuantizes)) <<
+ ASSERT_TRUE(checkIfOutputAttributesSharedValuesAreTheSame(actualFakeQuantizes)) <<
"PrecisionsAttribute are not the same";
if (testValues.checkIntervalsAlignmentAttributes) {
auto operations = LayerTransformation::get(actualFunction);
operations.insert(operations.end(), actualFakeQuantizes.begin(), actualFakeQuantizes.end());
- ASSERT_TRUE(checkIfAttributesSharedValuesAreTheSame>(operations)) <<
+ ASSERT_TRUE(checkIfAttributesSharedValuesAreTheSame(operations)) <<
"IntervalsAlignmentAttribute are not the same";
}
}
@@ -275,13 +275,13 @@ const std::vector testValues = {
{
{
256ul, {}, {0.f}, {2550.f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
{
256ul, {}, {0.f}, {0.1f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
@@ -304,7 +304,7 @@ const std::vector testValues = {
{
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {2.55f}, ngraph::element::f32,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
@@ -331,7 +331,7 @@ const std::vector testValues = {
{},
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {2.55f}, ngraph::element::f32,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
@@ -352,13 +352,13 @@ const std::vector testValues = {
{
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
@@ -390,13 +390,13 @@ const std::vector testValues = {
{
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
@@ -428,13 +428,13 @@ const std::vector testValues = {
{
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
@@ -462,13 +462,13 @@ const std::vector testValues = {
{
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
@@ -496,13 +496,13 @@ const std::vector testValues = {
{
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
@@ -526,13 +526,13 @@ const std::vector testValues = {
{
{
256ul, {{1}, {1}, {}, {}}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
{
256ul, {{1}, {1}, {}, {}}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
@@ -556,13 +556,13 @@ const std::vector testValues = {
{
{
256ul, {{1, 1, 1, 1}, {1, 1, 1, 1}, {}, {}}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
{
256ul, {{1, 1, 1, 1}, {1, 1, 1, 1}, {}, {}}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
@@ -586,13 +586,13 @@ const std::vector testValues = {
{
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
{
256ul, {}, {0.f}, {1.275f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
@@ -616,13 +616,13 @@ const std::vector testValues = {
{
{
256ul, {{1}, {1}, {}, {}}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
{
256ul, {{1}, {1}, {}, {}}, {0.f}, {1.275f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
@@ -657,7 +657,7 @@ const std::vector testValues = {
{{1, 3, 1, 1}, {1, 3, 1, 1}, {}, {}},
{0.f, 0.f, 0.f}, {2.55f, 2.55f, 2.55f}, {0.f}, {255.f},
ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
@@ -666,7 +666,7 @@ const std::vector testValues = {
{{1, 3, 1, 1}, {1, 3, 1, 1}, {}, {}},
{0.f, 0.f, 0.f}, {1.275f, 1.275f, 1.275f}, {0.f}, {255.f},
ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
@@ -692,13 +692,13 @@ const std::vector testValues = {
{
{
256ul, {}, {-1.28f}, {1.27f}, {-128.f}, {127.f}, ngraph::element::i8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
{
256ul, {}, {-1.28f}, {1.27f}, {-128.f}, {127.f}, ngraph::element::i8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
@@ -722,13 +722,13 @@ const std::vector testValues = {
{
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{-1.28f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{-1.28f, 2.55f}, 256ul) }
},
{},
{},
{
256ul, {}, {-1.28f}, {1.27f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{-1.28f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{-1.28f, 2.55f}, 256ul) }
},
{},
{},
@@ -752,13 +752,13 @@ const std::vector testValues = {
{
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{-1.28f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{-1.28f, 2.55f}, 256ul) }
},
{},
{},
{
256ul, {}, {-1.28f}, {1.27f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{-1.28f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{-1.28f, 2.55f}, 256ul) }
},
{},
{},
@@ -896,13 +896,13 @@ const std::vector testValues = {
{
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
@@ -940,13 +940,13 @@ const std::vector testValues = {
{
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{-1.28f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{-1.28f, 2.55f}, 256ul) }
},
{},
{},
{
256ul, {}, {-1.28f}, {1.27f}, {-1.28f}, {1.27f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{-1.28f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{-1.28f, 2.55f}, 256ul) }
},
{},
{},
@@ -974,13 +974,13 @@ const std::vector testValues = {
{
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
{
256ul, {}, {1.275f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
@@ -1012,13 +1012,13 @@ const std::vector testValues = {
{
{
256ul, {}, {1.275f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul) }
},
{},
{},
{
256ul, {}, {0.f}, {2.55f}, {0.f}, {255.f}, ngraph::element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul)
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{0.f, 2.55f}, 256ul)
}
},
{},
diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_neighbors_transformation_with_convolution.cpp b/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_neighbors_transformation_with_convolution.cpp
index 1b22f085f23..0cb4cd1fafe 100644
--- a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_neighbors_transformation_with_convolution.cpp
+++ b/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_neighbors_transformation_with_convolution.cpp
@@ -160,16 +160,16 @@ TEST_P(ConcatWithNeighborsWithConvolutionTransformation, CompareFunctions) {
auto actualFakeQuantizes = LayerTransformation::get(actualFunction);
ASSERT_EQ(3ul, actualFakeQuantizes.size()) << "unexpected FakeQuantize operations count " << actualFakeQuantizes.size();
- ASSERT_TRUE(checkIfOutputAttributesSharedValuesAreTheSame>(actualFakeQuantizes)) <<
+ ASSERT_TRUE(checkIfOutputAttributesSharedValuesAreTheSame(actualFakeQuantizes)) <<
"PrecisionsAttribute shared values are not the same";
auto actualConcatOperations = LayerTransformation::get(actualFunction);
ASSERT_EQ(2ul, actualConcatOperations.size()) << "unexpected concat operations";
- ASSERT_NE(nullptr, ngraph::pass::low_precision::getAttribute>(actualConcatOperations[0]));
- ASSERT_NE(nullptr, ngraph::pass::low_precision::getAttribute>(actualConcatOperations[1]));
+ ASSERT_FALSE(ngraph::pass::low_precision::getAttribute(actualConcatOperations[0]).empty());
+ ASSERT_FALSE(ngraph::pass::low_precision::getAttribute(actualConcatOperations[1]).empty());
actualConcatOperations.insert(actualConcatOperations.end(), actualFakeQuantizes.begin(), actualFakeQuantizes.end());
- ASSERT_TRUE(checkIfAttributesSharedValuesAreTheSame>(actualConcatOperations)) <<
+ ASSERT_TRUE(checkIfAttributesSharedValuesAreTheSame(actualConcatOperations)) <<
"IntervalsAlignmentAttribute shared values are not the same";
auto convolutions = LayerTransformation::get(actualFunction);
@@ -177,8 +177,8 @@ TEST_P(ConcatWithNeighborsWithConvolutionTransformation, CompareFunctions) {
ASSERT_EQ(2ul, convolutions[0]->input(0).get_rt_info().size()) <<
"unexpected input 0 attributes count: LowPrecision::PerTensorQuantization & LowPrecision::Precisions";
ASSERT_EQ(1ul, convolutions[0]->input(1).get_rt_info().size()) << "unexpected input 1 attributes count";
- auto a1 = std::dynamic_pointer_cast>>(convolutions[0]->input(1).get_rt_info().begin()->second);
- ASSERT_EQ(element::i8, *a1->get().get()->sharedValue->precisions.begin());
+ auto& a1 = convolutions[0]->input(1).get_rt_info().begin()->second.as();
+ ASSERT_EQ(element::i8, a1.value().front());
}
const std::vector precisions = {
@@ -204,15 +204,15 @@ const std::vector testValues = {
{
{
256ul, ngraph::Shape({}), {-1.28f / 3.f}, {1.27f / 3.f}, {0.f}, {255.f}, element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{-1.28f, 1.27f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{-1.28f, 1.27f}, 256ul) }
},
{
256ul, ngraph::Shape({}), {-1.28f / 2.f}, {1.27f / 2.f}, {64.f}, {192.f}, element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{-1.28f, 1.27f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{-1.28f, 1.27f}, 256ul) }
},
{
256ul, ngraph::Shape({}), {-1.28f}, {1.27f}, {0.f}, {255.f}, element::u8,
- { make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{-1.28f, 1.27f}, 256ul) }
+ { IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{-1.28f, 1.27f}, 256ul) }
},
ngraph::element::u8,
{{}, {}, {}},
diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_not_quantized_parent_transformation.cpp b/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_not_quantized_parent_transformation.cpp
index b34480ad5a4..b9d82357805 100644
--- a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_not_quantized_parent_transformation.cpp
+++ b/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_not_quantized_parent_transformation.cpp
@@ -218,9 +218,9 @@ public:
testValues.result.dequantization2,
true,
{
- make_shared_attribute_ptr(true),
- make_shared_attribute_ptr(IntervalsAlignmentSharedValue::Interval{-1.28f, 2.55f}, 256ul),
- make_shared_attribute_ptr(false)
+ PrecisionPreservedAttribute(true),
+ IntervalsAlignmentAttribute(IntervalsAlignmentSharedValue::Interval{-1.28f, 2.55f}, 256ul),
+ QuantizationAlignmentAttribute(false)
},
testValues.result.precisionAfterOperation,
testValues.result.dequantizationAfter,
@@ -258,14 +258,14 @@ TEST_P(ConcatWithNotQuantizedParentTransformation, CompareFunctions) {
break;
}
}
- ASSERT_TRUE(checkIfOutputAttributesSharedValuesAreTheSame>(actualFakeQuantizes)) <<
+ ASSERT_TRUE(checkIfOutputAttributesSharedValuesAreTheSame(actualFakeQuantizes)) <<
"PrecisionsAttribute are not the same";
ConcatWithNotQuantizedParentTransformationTestValues testValues = std::get<2>(GetParam());
if (testValues.checkIntervalsAlignmentAttributes) {
auto operations = LayerTransformation::get(actualFunction);
operations.insert(operations.end(), actualFakeQuantizes.begin(), actualFakeQuantizes.end());
- ASSERT_TRUE(checkIfAttributesSharedValuesAreTheSame>(operations)) <<
+ ASSERT_TRUE(checkIfAttributesSharedValuesAreTheSame(operations)) <<
"IntervalsAlignmentAttribute are not the same";
}
}
diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/convert_subtract_constant_transformation.cpp b/inference-engine/tests/functional/inference_engine/lp_transformations/convert_subtract_constant_transformation.cpp
index e910cbf6b8e..a952e3ef173 100644
--- a/inference-engine/tests/functional/inference_engine/lp_transformations/convert_subtract_constant_transformation.cpp
+++ b/inference-engine/tests/functional/inference_engine/lp_transformations/convert_subtract_constant_transformation.cpp
@@ -169,7 +169,8 @@ const std::vector testValues =
},
{
{ ngraph::element::f32, false },
- { {127.f}, element::f32, {}, false, 1ul, element::i8, true, {}, { "disabled_constant_folding_0" } },
+ { {127.f}, element::f32, {}, false, 1ul, element::i8, true, {},
+ { ov::pass::DisableConstantFolding::get_type_info_static() } },
{ {0.03f}, element::f32, {}, false }
},
{ std::vector{ 2.f }, ngraph::element::i8},
diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/convolution_backprop_data_transformation.cpp b/inference-engine/tests/functional/inference_engine/lp_transformations/convolution_backprop_data_transformation.cpp
index a2fc719a092..4ddef412cab 100644
--- a/inference-engine/tests/functional/inference_engine/lp_transformations/convolution_backprop_data_transformation.cpp
+++ b/inference-engine/tests/functional/inference_engine/lp_transformations/convolution_backprop_data_transformation.cpp
@@ -284,7 +284,8 @@ const std::vector testValues =
{
ngraph::element::u8,
{{}, { { 128.f }, ngraph::element::f32, {}, false }, {}},
- {{}, { { 2.f }, ngraph::element::f32, {1, 2, 1, 1}, true, 1ul, element::i8, false, { "disabled_constant_folding_0" } }, {}},
+ {{}, { { 2.f }, ngraph::element::f32, {1, 2, 1, 1}, true, 1ul, element::i8, false,
+ { ov::pass::DisableConstantFolding::get_type_info_static() } }, {}},
{{}, {}, {{ 0.0002f }, ngraph::element::f32, {}}},
op::Constant::create(ngraph::element::i8, ngraph::Shape{}, std::vector{ 2.f }),
true
diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/convolution_qdq_transformation.cpp b/inference-engine/tests/functional/inference_engine/lp_transformations/convolution_qdq_transformation.cpp
index fb54eb596cb..69aec47af04 100644
--- a/inference-engine/tests/functional/inference_engine/lp_transformations/convolution_qdq_transformation.cpp
+++ b/inference-engine/tests/functional/inference_engine/lp_transformations/convolution_qdq_transformation.cpp
@@ -174,7 +174,8 @@ const std::vector testValues = {
},
{
{},
- { { 127.f }, ngraph::element::f32, { 6, 1, 1, 1 }, false, 1ul, element::i8, false, { "disabled_constant_folding_0" } },
+ { { 127.f }, ngraph::element::f32, { 6, 1, 1, 1 }, false, 1ul, element::i8, false,
+ { ov::pass::DisableConstantFolding::get_type_info_static() } },
{}
},
{ std::vector{ 100.f }, ngraph::element::i8},
@@ -349,7 +350,8 @@ const std::vector testValues = {
},
{
{},
- { { 127.f }, ngraph::element::f32, { 6, 1, 1, 1 }, false, 1ul, element::i8, false, { "disabled_constant_folding_0" } },
+ { { 127.f }, ngraph::element::f32, { 6, 1, 1, 1 }, false, 1ul, element::i8, false,
+ { ov::pass::DisableConstantFolding::get_type_info_static() } },
{}
},
{ std::vector{ 2.f }, ngraph::element::i8},
@@ -417,7 +419,8 @@ const std::vector testValues = {
},
{
{},
- { { 127.f }, ngraph::element::f32, { 6, 1, 1, 1 }, false, 1ul, element::i8, false, { "disabled_constant_folding_0" } },
+ { { 127.f }, ngraph::element::f32, { 6, 1, 1, 1 }, false, 1ul, element::i8, false,
+ { ov::pass::DisableConstantFolding::get_type_info_static() } },
{}
},
{ std::vector