Class ov::op::util::MultiSubGraphOp#

class MultiSubGraphOp : public ov::op::Sink#

Abstract base class for sub-graph based ops, i.e ops that have some sub-graphs.

Subclassed by ov::op::util::FrameworkNode, ov::op::util::SubGraphOp, ov::op::v8::If

Public Functions

inline virtual const std::shared_ptr<Model> &get_function(size_t index) const#

Gets internal sub-graph by index in MultiSubGraphOp.

Parameters:

index – sub-graph’s index in op

Returns:

pointer to Model with sub-graph

inline virtual const std::vector<std::shared_ptr<Model>> &get_functions() const#

Gets internal sub-graphs.

Returns:

a vector of pointers to sub-graph Models

inline virtual void set_function(int index, const std::shared_ptr<Model> &func)#

Adds sub-graph to MultiSubGraphOp.

Parameters:
  • index – index of new sub-graph

  • func – func new sub_graph as Model

inline const MultiSubgraphInputDescriptionVector &get_input_descriptions(int index) const#

Gets vector with connections between operation inputs and internal sub-graph parameters.

Parameters:

index – index of internal sub-graph

Returns:

vector of input descriptions

inline MultiSubgraphInputDescriptionVector &get_input_descriptions(int index)#

Gets vector with connections between operation inputs and internal sub-graph parameters.

Parameters:

index – index of internal sub-graph

Returns:

vector of input descriptions

inline const MultiSubgraphOutputDescriptionVector &get_output_descriptions(int index) const#

Gets vector with connections between operation outputs and internal sub-graph results.

Parameters:

index – index of internal sub-graph

Returns:

vector of output descriptions

inline MultiSubgraphOutputDescriptionVector &get_output_descriptions(int index)#

Gets vector with connections between operation outputs and internal sub-graph results.

Parameters:

index – index of internal sub-graph

Returns:

vector of output descriptions

inline void set_input_descriptions(int index, const MultiSubgraphInputDescriptionVector &inputs)#

Sets vector with connections between operation inputs and internal sub-graph parameters.

Parameters:
  • index – index of internal sub-graph

  • inputs – vector of input descriptions

inline void set_output_descriptions(int index, const MultiSubgraphOutputDescriptionVector &outputs)#

Sets vector with connections between operation outputs and internal sub-graph results.

Parameters:
  • index – index of internal sub-graph

  • outputs – vector of input descriptions

virtual void set_invariant_inputs(const Output<Node> &value, const ov::ParameterVector &bodies_parameters)#

Set input decriptions for MultiSubGraphOp input.

Parameters:
  • value – The value supplied as an input to the block.

  • bodies_parameters – vector of bodies parameters.

virtual Output<Node> set_body_outputs(const ResultVector &bodies_results)#

Set output decriptions for MultiSubGraphOp output.

Parameters:

bodies_results – vector of bodies results for one output.

Returns:

value Output node for bodies_results.

inline virtual size_t get_internal_subgraphs_size() const#

Get number of internal sub-graphs.

Returns:

Number of sub-graphs.

inline virtual size_t get_input_descriptions_size() const#

Get number of input descriptions.

Returns:

Number of input descriptions

inline virtual size_t get_output_descriptions_size() const#

Get number of output descriptions.

Returns:

Number of output descriptions

class BodyOutputDescription : public ov::op::util::MultiSubGraphOp::OutputDescription#

Produces an output from a specific iteration.

Public Functions

BodyOutputDescription(uint64_t body_value_index, uint64_t output_index, int64_t iteration = -1)#

Constructs a new instance.

Parameters:
  • body_value_index – A body value that produces the output

  • output_index – The SubGraphOp output index

  • iteration – which iteration (typically -1, final) will supply the value

class ConcatOutputDescription : public ov::op::util::MultiSubGraphOp::OutputDescription#

Produces an output by concatenating an output from each iteration.

Public Functions

ConcatOutputDescription(uint64_t body_value_index, uint64_t output_index, int64_t start, int64_t stride, int64_t part_size, int64_t end, int64_t axis)#

Constructs a new instance.

Parameters:
  • body_value_index – A body value that produces the output

  • output_index – The MultiSubGraphOp output index

  • start – First index for slices

  • stride – Step amount for slices

  • part_size – Width of slices

  • end – Last index for slices

  • axis – Axis being sliced

class InputDescription#

Abstract class describes a connection between a MultiSubGraphOp input and the body.

Subclassed by ov::op::util::MultiSubGraphOp::InvariantInputDescription, ov::op::util::MultiSubGraphOp::MergedInputDescription, ov::op::util::MultiSubGraphOp::SliceInputDescription

class InvariantInputDescription : public ov::op::util::MultiSubGraphOp::InputDescription#

Produces an input.

Public Functions

InvariantInputDescription(uint64_t input_index, uint64_t body_parameter_index)#

Constructs a new instance.

Parameters:
  • input_index – Position of the MultiSubGraphOp input

  • body_parameter_index – Body parameter to receive input

class MergedInputDescription : public ov::op::util::MultiSubGraphOp::InputDescription#

Describes a body input initialized from a MultiSubGraphOp input on the first iteration, and then a body output thereafter.

Public Functions

MergedInputDescription(uint64_t input_index, uint64_t body_parameter_index, uint64_t body_value_index)#

Constructs a new instance.

Parameters:
  • input_index – Position of the MultiSubGraphOp input supplying a value to body_parameter for the initial iteration.

  • body_parameter_index – Body parameter position to receive input.

  • body_value_index – Body value to supply body_parameter for successive iterations.

class OutputDescription#

Abstract class describes how a MultiSubGraphOp output is produced from the body.

Subclassed by ov::op::util::MultiSubGraphOp::BodyOutputDescription, ov::op::util::MultiSubGraphOp::ConcatOutputDescription

class SliceInputDescription : public ov::op::util::MultiSubGraphOp::InputDescription#

Describes a body input formed from slices of an input to MultiSubGraphOp.

Public Functions

SliceInputDescription(uint64_t input_index, uint64_t body_parameter_index, int64_t start, int64_t stride, int64_t part_size, int64_t end, int64_t axis)#

Constructs a new instance.

Parameters:
  • input_index – Position of the MultiSubGraphOp input

  • body_parameter_index – Body parameter position to receive input

  • start – First index for slices

  • stride – Step amount for slices

  • part_size – Width of slices

  • end – Last index for slices

  • axis – Axis being sliced