Model Creation in Runtime¶
OpenVINO™ Runtime API 2.0 includes the nGraph engine as a common part. The ngraph
namespace has been changed to ov
but all other parts of the ngraph API have been preserved. The code snippets below show how to change application code for migration to OpenVINO™ Runtime API 2.0.
nGraph API¶
// _____________ _____________
// | Parameter | | Parameter |
// | data1 | | data2 |
// |___________| |___________|
// | |
// data1_t | | data2_t
// \ /
// \ /
// \ /
// ____\____/____
// | Concat |
// | concat |
// |____________|
// |
// | concat_t
// |
// _______|_______
// | Result |
// | result |
// |_____________|
auto data1 = std::make_shared<ngraph::opset8::Parameter>(ngraph::element::i64, ngraph::Shape{1, 3, 2, 2});
data1->set_friendly_name("data1"); // operation name
data1->output(0).set_names({"data1_t"}); // tensor names
auto data2 = std::make_shared<ngraph::opset8::Parameter>(ngraph::element::i64, ngraph::Shape{1, 2, 2, 2});
data2->set_friendly_name("data2"); // operation name
data2->output(0).set_names({"data2_t"}); // tensor names
auto concat = std::make_shared<ngraph::opset8::Concat>(ngraph::OutputVector{data1, data2}, 1);
concat->set_friendly_name("concat"); // operation name
concat->output(0).set_names({"concat_t"}); // tensor name
auto result = std::make_shared<ngraph::opset8::Result>(concat);
result->set_friendly_name("result"); // operation name
auto f = std::make_shared<ngraph::Function>(ngraph::ResultVector{result},
ngraph::ParameterVector{data1, data2},
"function_name");
# _____________ _____________
# | Parameter | | Parameter |
# | data1 | | data2 |
# |___________| |___________|
# | |
# | |
# \ /
# \ /
# \ /
# ____\____/____
# | Concat |
# | concat |
# |____________|
# |
# |
# |
# _______|_______
# | Result |
# | result |
# |_____________|
import ngraph as ng
import numpy as np
data1 = ng.opset8.parameter([1, 3, 2, 2], np.int64)
data1.friendly_name = "data1" # operation name
data2 = ng.opset8.parameter([1, 2, 2, 2], np.int64)
data2.friendly_name = "data2" # operation name
concat = ng.opset8.concat([data1, data2], 1)
concat.friendly_name = "concat" # operation name
result = ng.opset8.result(concat)
result.friendly_name = "result" # operation name
f = ng.Function(result, [data1, data2], "function_name")
OpenVINO™ Runtime API 2.0:¶
// _____________ _____________
// | Parameter | | Parameter |
// | data1 | | data2 |
// |___________| |___________|
// | |
// data1_t | | data2_t
// \ /
// \ /
// \ /
// ____\____/____
// | Concat |
// | concat |
// |____________|
// |
// | concat_t
// |
// _______|_______
// | Result |
// | result |
// |_____________|
auto data1 = std::make_shared<ov::opset8::Parameter>(ov::element::i64, ov::Shape{1, 3, 2, 2});
data1->set_friendly_name("data1"); // operation name
data1->output(0).set_names({"data1_t"}); // tensor names
auto data2 = std::make_shared<ov::opset8::Parameter>(ov::element::i64, ov::Shape{1, 2, 2, 2});
data2->set_friendly_name("data2"); // operation name
data2->output(0).set_names({"data2_t"}); // tensor names
auto concat = std::make_shared<ov::opset8::Concat>(ov::OutputVector{data1, data2}, 1);
concat->set_friendly_name("concat"); // operation name
concat->output(0).set_names({"concat_t"}); // tensor name
auto result = std::make_shared<ov::opset8::Result>(concat);
result->set_friendly_name("result"); // operation name
auto f = std::make_shared<ov::Model>(ov::ResultVector{result}, ov::ParameterVector{data1, data2}, "function_name");
# _____________ _____________
# | Parameter | | Parameter |
# | data1 | | data2 |
# |___________| |___________|
# | |
# data1_t | | data2_t
# \ /
# \ /
# \ /
# ____\____/____
# | Concat |
# | concat |
# |____________|
# |
# | concat_t
# |
# _______|_______
# | Result |
# | result |
# |_____________|
import openvino.runtime as ov
data1 = ov.opset8.parameter([1, 3, 2, 2], ov.Type.i64)
data1.friendly_name = "data1" # operation name
data1.output(0).name = "data1_t" # tensor name
data2 = ov.opset8.parameter([1, 2, 2, 2], ov.Type.i64)
data2.friendly_name = "data2" # operation name
data2.output(0).name = "data2_t" # tensor name
concat = ov.opset8.concat([data1, data2], 1)
concat.friendly_name = "concat" # operation name
concat.output(0).name = "concat_t" # tensor name
result = ov.opset8.result(concat)
result.friendly_name = "result" # operation name
model = ov.Model(result, [data1, data2], "model_name")
See also: