From 63e24773eeec25730c387c7d3f77cb29f4a2b82c Mon Sep 17 00:00:00 2001 From: Ilya Churaev Date: Thu, 10 Nov 2022 19:10:07 +0400 Subject: [PATCH] Added documentation for get_layout API (#13937) * Added documentation for get_layout API * Fixed typo --- docs/OV_Runtime_UG/layout_overview.md | 20 ++++++++++++++++++++ docs/snippets/ov_layout.cpp | 11 ++++++++++- docs/snippets/ov_layout.py | 25 +++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) diff --git a/docs/OV_Runtime_UG/layout_overview.md b/docs/OV_Runtime_UG/layout_overview.md index 8a4ef46fe18..b29f9383f06 100644 --- a/docs/OV_Runtime_UG/layout_overview.md +++ b/docs/OV_Runtime_UG/layout_overview.md @@ -147,6 +147,26 @@ A layout can be converted to a string in the advanced syntax format. It can be u @endsphinxtabset +### Get layout from Model Input/Output + +OpenVINO provides helpers which provide a simple interface to get layout from Model input or output. + +@sphinxtabset + +@sphinxtab{C++} + +@snippet docs/snippets/ov_layout.cpp ov:layout:get_from_model + +@endsphinxtab + +@sphinxtab{Python} + +@snippet docs/snippets/ov_layout.py ov:layout:get_from_model + +@endsphinxtab + +@endsphinxtabset + ## See also * API Reference: ov::Layout C++ class diff --git a/docs/snippets/ov_layout.cpp b/docs/snippets/ov_layout.cpp index 44f1e392f98..88a5c6e1d23 100644 --- a/docs/snippets/ov_layout.cpp +++ b/docs/snippets/ov_layout.cpp @@ -1,7 +1,8 @@ // Copyright (C) 2018-2022 Intel Corporation // SPDX-License-Identifier: Apache-2.0 // -#include +#include "openvino/core/layout.hpp" +#include "openvino/core/model.hpp" int main() { ov::Layout layout; @@ -54,5 +55,13 @@ layout = ov::Layout("NCHW"); std::cout << layout.to_string(); // prints [N,C,H,W] //! [ov:layout:dump] +std::shared_ptr model; +//! [ov:layout:get_from_model] +// Get layout for model input +layout = ov::layout::get_layout(model->input("input_tensor_name")); +// Get layout for model with single output +layout = ov::layout::get_layout(model->output()); +//! [ov:layout:get_from_model] + return 0; } diff --git a/docs/snippets/ov_layout.py b/docs/snippets/ov_layout.py index 689937b6c87..f7dfe7af8ea 100644 --- a/docs/snippets/ov_layout.py +++ b/docs/snippets/ov_layout.py @@ -1,6 +1,7 @@ # Copyright (C) 2018-2022 Intel Corporation # SPDX-License-Identifier: Apache-2.0 # +import openvino.runtime as ov # ! [ov:layout:simple] from openvino.runtime import Layout @@ -52,3 +53,27 @@ layout_helpers.width_idx(Layout('...HW')) layout = Layout('NCHW') print(layout) # prints [N,C,H,W] # ! [ov:layout:dump] + + +def create_simple_model(): + # This example shows how to create ov::Function + # + # Parameter--->Multiply--->Add--->Result + # Constant---' / + # Constant---' + data = ov.opset8.parameter([3, 1, 2], ov.Type.f32) + mul_constant = ov.opset8.constant([1.5], ov.Type.f32) + mul = ov.opset8.multiply(data, mul_constant) + add_constant = ov.opset8.constant([0.5], ov.Type.f32) + add = ov.opset8.add(mul, add_constant) + res = ov.opset8.result(add) + return ov.Model([res], [data], "model") + +model = create_simple_model() + +# ! [ov:layout:get_from_model] +# Get layout for model input +layout = layout_helpers.get_layout(model.input("input_tensor_name")) +# Get layout for model with single output +layout = layout_helpers.get_layout(model.output()) +# ! [ov:layout:get_from_model]