class ov::op::util::SubGraphOp¶
Overview¶
Abstract base class for sub-graph based ops, i.e ops that have only one sub-graph. More…
#include <sub_graph_base.hpp>
class SubGraphOp: public ov::op::util::MultiSubGraphOp
{
public:
// construction
SubGraphOp();
SubGraphOp();
// methods
"SubGraphOp""util"op::util::MultiSubGraphOp OPENVINO_OP(, , );
virtual const std::shared_ptr<Model>& get_function() const;
virtual voidconst std::shared_ptr<Model>& set_function();
const std::vector<std::shared_ptr<InputDescription>>& get_input_descriptions() const;
std::vector<std::shared_ptr<InputDescription>>& get_input_descriptions();
const std::vector<std::shared_ptr<OutputDescription>>& get_output_descriptions() const;
std::vector<std::shared_ptr<OutputDescription>>& get_output_descriptions();
virtual voidconst std::shared_ptr<ov::op::v0::Parameter>&const Output<Node>&int64_tint64_tint64_tint64_tint64_t set_sliced_input(
,
,
,
,
,
,
);
virtual voidconst std::shared_ptr<ov::op::v0::Parameter>&const Output<Node>&const Output<Node>& set_merged_input(
,
,
);
virtual voidconst std::shared_ptr<ov::op::v0::Parameter>&const Output<Node>& set_invariant_input(
,
);
virtual Output<Node>const Output<Node>&int64_t get_iter_value(, );
virtual Output<Node>const Output<Node>&int64_tint64_tint64_tint64_tint64_t get_concatenated_slices(
,
,
,
,
,
);
SubGraphOp&const SubGraphOp& operator = ();
SubGraphOp&SubGraphOp&& operator = ();
int64_t get_num_iterations() const;
};
// direct descendants
class TensorIterator;
class Loop;
Inherited Members¶
public:
// typedefs
typedef DiscreteTypeInfo type_info_t;
typedef std::map<std::string, Any> RTMap;
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;
// 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;
"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 = ();
Detailed Documentation¶
Abstract base class for sub-graph based ops, i.e ops that have only one sub-graph.
Methods¶
const std::vector<std::shared_ptr<InputDescription>>& get_input_descriptions() const
Returns:
a reference to the input descriptions.
std::vector<std::shared_ptr<InputDescription>>& get_input_descriptions()
Returns:
a reference to the input descriptions. Can add input descriptions before validation.
const std::vector<std::shared_ptr<OutputDescription>>& get_output_descriptions() const
Returns:
a reference to the output descriptions.
std::vector<std::shared_ptr<OutputDescription>>& get_output_descriptions()
Returns:
a reference to the output descriptions. Can add output descriptions before validation.
virtual voidconst std::shared_ptr<ov::op::v0::Parameter>&const Output<Node>&int64_tint64_tint64_tint64_tint64_t set_sliced_input(
,
,
,
,
,
,
)
Indicate that a body parameter comes from slices of a value.
Parameters:
parameter |
The parameter to receive the slices |
value |
The value to be sliced. This will be added as an input to SubGraphOp. |
start |
First index on axis of the slicing |
stride |
Stepping of the slice |
part_size |
Size of the slice on axis |
end |
The last index on axis of the slicing |
axis |
The axis to slice along |
virtual voidconst std::shared_ptr<ov::op::v0::Parameter>&const Output<Node>&const Output<Node>& set_merged_input(
,
,
)
Indicates that a body parameter has an initial value in the first iteration and computed value thereafter.
Parameters:
body_parameter |
The body parameter |
initial_value |
Value for the parameter in first iteration. This will be added as an input to Loop. |
successive_value |
Value for the parameter in successive iterations. The value is what is active in the most recent completed iteration. |
virtual voidconst std::shared_ptr<ov::op::v0::Parameter>&const Output<Node>& set_invariant_input(
,
)
Indicates that a body parameter has an invariant value during iteration that may depend on values computed outside of the iteration.
Parameters:
body_parameter |
The body parameter |
value |
The value supplied as an input to the block |
Gets a value for a particular iteration point.
Parameters:
body_value |
The value |
iteration |
The iteration that supplies the value. Negative values are from the last iteration. Default value -1 (the last iteration). |
Returns:
The iterator value.
Concatenates slices from all iterations.
Parameters:
value |
The value supplying slice values from each iteration. |
start |
First index on axis of the slicing |
stride |
Stepping of the slice |
part_size |
Size of the slice on axis |
end |
The last index on axis of the slicing |
axis |
The axis to slice along |
Returns:
The concatenated slices.