Class ov::op::v5::Loop#

class Loop : public ov::op::util::SubGraphOp#

Iterate a body over tensors, accumulating into tensors.

Public Functions

Loop() = default#

Constructs a Loop operation.

Loop(const Output<Node> &trip_count, const Output<Node> &execution_condition)#

Constructs a Loop operation.

Parameters:
  • trip_countNode specifies the maximum number of iterations.

  • execution_conditionNode determines whether to execute the first iteration or not.

virtual Output<Node> get_concatenated_slices(const Output<Node> &value, int64_t start, int64_t stride, int64_t part_size, int64_t end, int64_t axis) override#

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.

virtual void validate_and_infer_types() override#

Verifies that attributes and inputs are consistent and computes output shapes and element types. Must be implemented by concrete child classes so that it can be run any number of times.

Throws if the node is invalid.

virtual bool evaluate(ov::TensorVector &outputs, const ov::TensorVector &inputs) const override#

Evaluates the op on input_values putting results in output_values.

Parameters:
  • output_values – Tensors for the outputs to compute. One for each result

  • input_values – Tensors for the inputs. One for each inputs.

Returns:

true if successful

virtual bool has_evaluate() const override#

Allows to get information about availability of evaluate method for the current operation.

struct SpecialBodyPorts#

Allows to define the purpose of inputs/outputs in the body.