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]