class ov::op::util::MultiSubGraphOp

Overview

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

#include <multi_subgraph_base.hpp>

class MultiSubGraphOp: public ov::op::Op
{
public:
    // typedefs

    typedef std::vector<MultiSubGraphOp::InputDescription::Ptr> MultiSubgraphInputDescriptionVector;
    typedef std::vector<MultiSubGraphOp::OutputDescription::Ptr> MultiSubgraphOutputDescriptionVector;

    // classes

    class BodyOutputDescription;
    class ConcatOutputDescription;
    class InputDescription;
    class InvariantInputDescription;
    class MergedInputDescription;
    class OutputDescription;
    class SliceInputDescription;

    // construction

    MultiSubGraphOp();
    MultiSubGraphOp();

    // methods

    "MultiSubGraphOp""util" OPENVINO_OP(, );
    virtual const std::shared_ptr<Model>&size_t get_function() const;
    virtual const std::vector<std::shared_ptr<Model>>& get_functions() const;
    virtual voidintconst std::shared_ptr<Model>& set_function(, );
    const MultiSubgraphInputDescriptionVector&int get_input_descriptions() const;
    MultiSubgraphInputDescriptionVector&int get_input_descriptions();
    const MultiSubgraphOutputDescriptionVector&int get_output_descriptions() const;
    MultiSubgraphOutputDescriptionVector&int get_output_descriptions();
    voidintconst MultiSubgraphInputDescriptionVector& set_input_descriptions(, );
    voidintconst MultiSubgraphOutputDescriptionVector& set_output_descriptions(, );

    virtual voidconst Output<Node>&const ov::ParameterVector& set_invariant_inputs(
        ,

        );

    virtual Output<Node>const ResultVector& set_body_outputs();
    virtual size_t get_internal_subgraphs_size() const;
    virtual size_t get_input_descriptions_size() const;
    virtual size_t get_output_descriptions_size() const;
    bool get_transformations_allowed() const;
    MultiSubGraphOp&const MultiSubGraphOp& operator = ();
    MultiSubGraphOp&MultiSubGraphOp&& operator = ();
};

// direct descendants

class FrameworkNode;
class SubGraphOp;
class If;

Inherited Members

public:
    // typedefs

    typedef DiscreteTypeInfo type_info_t;
    typedef std::map<std::string, Any> RTMap;

    // methods

    virtual void validate_and_infer_types();
    void constructor_validate_and_infer_types();
    virtual boolAttributeVisitor& visit_attributes();
    virtual const ov::op::AutoBroadcastSpec& get_autob() const;
    virtual bool has_evaluate() const;
    virtual boolconst ov::HostTensorVector&const ov::HostTensorVector& evaluate(, ) const;

    virtual boolconst ov::HostTensorVector&const ov::HostTensorVector&const EvaluationContext& evaluate(
        ,
        ,

        ) const;

    virtual boolov::TensorVector&const ov::TensorVector& evaluate(, ) const;

    virtual boolov::TensorVector&const ov::TensorVector&const ov::EvaluationContext& evaluate(
        ,
        ,

        ) const;

    virtual boolov::TensorVector& evaluate_lower() const;
    virtual boolov::TensorVector& evaluate_upper() const;
    virtual boolTensorLabelVector& evaluate_label() const;
    virtual boolOutputVector&const OutputVector& constant_fold(, );
    virtual OutputVector decompose_op() const;
    virtual const type_info_t& get_type_info() const = 0;
    const char \* get_type_name() const;
    voidconst NodeVector& set_arguments();
    voidconst OutputVector& set_arguments();
    voidsize_tconst Output<Node>& set_argument(, );
    voidsize_tconst element::Type&const PartialShape& set_output_type(, , );
    voidsize_t set_output_size();
    void invalidate_values();
    virtual void revalidate_and_infer_types();
    virtual std::string description() const;
    const std::string& get_name() const;
    voidconst std::string& set_friendly_name();
    const std::string& get_friendly_name() const;
    virtual bool is_dynamic() const;
    size_t get_instance_id() const;
    virtual std::ostream&std::ostream&uint32_t write_description(, ) const;
    const std::vector<std::shared_ptr<Node>>& get_control_dependencies() const;
    const std::vector<Node \*>& get_control_dependents() const;
    voidstd::shared_ptr<Node> add_control_dependency();
    voidstd::shared_ptr<Node> remove_control_dependency();
    void clear_control_dependencies();
    void clear_control_dependents();
    voidconst std::shared_ptr<const Node>& add_node_control_dependencies();
    voidconst std::shared_ptr<const Node>& add_node_control_dependents();
    voidstd::shared_ptr<Node> transfer_control_dependents();
    size_t get_output_size() const;
    const element::Type&size_t get_output_element_type() const;
    const element::Type& get_element_type() const;
    const Shape&size_t get_output_shape() const;
    const PartialShape&size_t get_output_partial_shape() const;
    Output<const Node> get_default_output() const;
    Output<Node> get_default_output();
    virtual size_t get_default_output_index() const;
    size_t no_default_index() const;
    const Shape& get_shape() const;
    descriptor::Tensor&size_t get_output_tensor() const;
    descriptor::Tensor&size_t get_input_tensor() const;
    std::set<Input<Node>>size_t get_output_target_inputs() const;
    size_t get_input_size() const;
    const element::Type&size_t get_input_element_type() const;
    const Shape&size_t get_input_shape() const;
    const PartialShape&size_t get_input_partial_shape() const;
    Node \*size_t get_input_node_ptr() const;
    std::shared_ptr<Node>size_t get_input_node_shared_ptr() const;
    Output<Node>size_t get_input_source_output() const;
    virtual std::shared_ptr<Node>const OutputVector& clone_with_new_inputs() const = 0;
    std::shared_ptr<Node>const OutputVector& copy_with_new_inputs() const;

    std::shared_ptr<Node>const OutputVector&const std::vector<std::shared_ptr<Node>>& copy_with_new_inputs(
        ,

        ) const;

    boolstd::shared_ptr<const Node> has_same_type() const;
    RTMap& get_rt_info();
    const RTMap& get_rt_info() const;
    NodeVectorbool get_users() const;
    boolconst Node& operator < () const;
    std::vector<Input<Node>> inputs();
    std::vector<Input<const Node>> inputs() const;
    std::vector<Output<Node>> input_values() const;
    std::vector<Output<Node>> outputs();
    std::vector<Output<const Node>> outputs() const;
    Input<Node>size_t input();
    Input<const Node>size_t input() const;
    Output<Node>size_t input_value() const;
    Output<Node>size_t output();
    Output<const Node>size_t output() const;

    virtual boolov::pass::pattern::Matcher \*const Output<Node>&const Output<Node>& match_value(
        ,
        ,

        );

    virtual boolov::pass::pattern::Matcher \*const Output<Node>& match_node(, );
    static _OPENVINO_HIDDEN_METHODconst ::ov::Node::type_info_t& get_type_info_static();
    virtual const ::ov::Node::type_info_t& get_type_info() const;

Detailed Documentation

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

Methods

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

Gets internal sub-graph by index in MultiSubGraphOp.

Parameters:

index

sub-graph’s index in op

Returns:

pointer to Model with sub-graph

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

Gets internal sub-graphs.

Returns:

a vector of pointers to sub-graph Models

virtual voidintconst std::shared_ptr<Model>& set_function(, )

Adds sub-graph to MultiSubGraphOp.

Parameters:

index

index of new sub-graph

func

func new sub_graph as Model

const MultiSubgraphInputDescriptionVector&int get_input_descriptions() 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

MultiSubgraphInputDescriptionVector&int get_input_descriptions()

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

Parameters:

index

index of internal sub-graph

Returns:

vector of input descriptions

const MultiSubgraphOutputDescriptionVector&int get_output_descriptions() 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

MultiSubgraphOutputDescriptionVector&int get_output_descriptions()

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

Parameters:

index

index of internal sub-graph

Returns:

vector of output descriptions

voidintconst MultiSubgraphInputDescriptionVector& set_input_descriptions(, )

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

Parameters:

index

index of internal sub-graph

inputs

vector of input descriptions

voidintconst MultiSubgraphOutputDescriptionVector& set_output_descriptions(, )

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 voidconst Output<Node>&const ov::ParameterVector& set_invariant_inputs(
    ,

    )

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>const ResultVector& set_body_outputs()

Set output decriptions for MultiSubGraphOp output.

Parameters:

bodies_results

vector of bodies results for one output.

Returns:

value Output node for bodies_results.

virtual size_t get_internal_subgraphs_size() const

Get number of internal sub-graphs.

Returns:

Number of sub-graphs.

virtual size_t get_input_descriptions_size() const

Get number of input descriptions.

Returns:

Number of input descriptions

virtual size_t get_output_descriptions_size() const

Get number of output descriptions.

Returns:

Number of output descriptions