namespace v3 {
// classes
class Acosh;
class Asinh;
class Assign;
class Atanh;
class Broadcast;
class Bucketize;
class EmbeddingBagOffsetsSum;
class EmbeddingBagPackedSum;
class EmbeddingSegmentsSum;
class ExtractImagePatches;
class GRUCell;
class NonMaxSuppression;
class NonZero;
class ROIAlign;
class ReadValue;
class ScatterElementsUpdate;
class ScatterNDUpdate;
class ScatterUpdate;
class ShapeOf;
class TopK;
// global functions
template <class T>
void shape_infer(
const Assign \* op,
const std::vector<T>& input_shapes,
std::vector<T>& output_shapes
);
template <class T>
void shape_infer(
const ov::op::v3::Broadcast \* op,
const std::vector<T>& input_shapes,
std::vector<T>& output_shapes,
const std::map<size_t, std::shared_ptr<ngraph::runtime::HostTensor>>& constant_data = {}
);
template <class T>
void shape_infer(
const Bucketize \* op,
const std::vector<T>& input_shapes,
std::vector<T>& output_shapes
);
template <class T>
void shape_infer(
const EmbeddingSegmentsSum \* op,
const std::vector<T>& input_shapes,
std::vector<T>& output_shapes,
const std::map<size_t, std::shared_ptr<ngraph::runtime::HostTensor>>& constant_data = {}
);
int32_t calc_shape_padding(
const int32_t input,
const int32_t rate,
const int32_t stride,
const int32_t patch_size,
const PadType type
);
template <class T>
void shape_infer(
const ExtractImagePatches \* op,
const std::vector<T>& input_shapes,
std::vector<T>& output_shapes
);
template <class T>
void shape_infer(
const ReadValue \* op,
const std::vector<T>& input_shapes,
std::vector<T>& output_shapes
);
template <class OpType, class ShapeType>
void infer_roi_align_shape(
const OpType \* op,
const std::vector<ShapeType>& input_shapes,
std::vector<ShapeType>& output_shapes
);
template <class T>
void shape_infer(
const ov::op::v3::ROIAlign \* op,
const std::vector<T>& input_shapes,
std::vector<T>& output_shapes
);
template <class T>
void shape_infer(
const ScatterElementsUpdate \* op,
const std::vector<T>& input_shapes,
std::vector<T>& output_shapes,
const std::map<size_t, std::shared_ptr<ngraph::runtime::HostTensor>>& constant_data = {}
);
} // namespace v3