Class ov::preprocess::PostProcessSteps¶
-
class PostProcessSteps¶
Postprocessing steps. Each step typically intends adding of some operation to output parameter User application can specify sequence of postprocessing steps in a builder-like manner.
auto proc = PrePostProcessor(function); proc.output().postprocess().convert_element_type(element::u8); function = proc.build();
Public Types
-
using CustomPostprocessOp = std::function<ov::Output<ov::Node>(const ov::Output<ov::Node> &node)>¶
Signature for custom postprocessing operation. Custom postprocessing operation takes one output node and produces one output node. For more advanced cases, client’s code can use transformation passes over ov::Model directly.
- Param node
Output node for custom post-processing operation
- Return
New node after applying custom post-processing operation
Public Functions
-
~PostProcessSteps()¶
Default destructor.
-
PostProcessSteps &convert_element_type(const ov::element::Type &type = {})¶
Add convert element type post-process operation.
- Parameters
type – Desired type of output. If not specified, type will be obtained from ‘tensor’ output information
- Returns
Reference to ‘this’ to allow chaining with other calls in a builder-like manner
-
PostProcessSteps &convert_layout(const Layout &dst_layout = {})¶
Add ‘convert layout’ operation to specified layout.
Adds appropriate ‘transpose’ operation between model layout and user’s desired layout. Current implementation requires source and destination layout to have same number of dimensions
Example: when model data has output in ‘NCHW’ layout ([1, 3, 224, 224]) but user needs interleaved output image (‘NHWC’, [1, 224, 224, 3]). Post-processing may look like this:
auto proc = PrePostProcessor(function); proc.output().model(OutputTensorInfo().set_layout("NCHW"); // model output is NCHW proc.output().postprocess().convert_layout("NHWC"); // User needs output as NHWC
- Parameters
dst_layout – New layout after conversion. If not specified - destination layout is obtained from appropriate tensor output properties.
- Returns
Reference to ‘this’ to allow chaining with other calls in a builder-like manner.
-
PostProcessSteps &convert_layout(const std::vector<uint64_t> &dims)¶
Add convert layout operation by direct specification of transposed dimensions.
Example: model produces output with shape [1, 3, 480, 640] and user’s needs interleaved output image [1, 480, 640, 3]. Post-processing may look like this:
auto proc = PrePostProcessor(function); proc.output().postprocess().convert_layout({0, 2, 3, 1}); function = proc.build();
- Parameters
dims – Dimensions array specifying places for new axis. If not empty, array size (N) must match to input shape rank. Array values shall contain all values from 0 to N-1. If empty, no actual conversion will be added.
- Returns
Reference to ‘this’ to allow chaining with other calls in a builder-like manner.
-
PostProcessSteps &custom(const CustomPostprocessOp &postprocess_cb)¶
Add custom post-process operation. Client application can specify callback function for custom action.
- Parameters
postprocess_cb – Client’s custom postprocess operation.
- Returns
Reference to ‘this’ to allow chaining with other calls in a builder-like manner
-
using CustomPostprocessOp = std::function<ov::Output<ov::Node>(const ov::Output<ov::Node> &node)>¶