class ov::frontend::FrontEnd¶
Overview¶
An interface for identifying a frontend for a particular framework. Provides an ability to load and convert of input model. More…
#include <frontend.hpp>
class FrontEnd
{
public:
// typedefs
typedef std::shared_ptr<FrontEnd> Ptr;
// construction
FrontEnd();
FrontEnd(const FrontEnd&);
FrontEnd(FrontEnd&&);
// methods
FrontEnd& operator = (const FrontEnd&);
FrontEnd& operator = (FrontEnd&&);
template <typename... Types>
bool supported(const Types&... vars) const;
template <typename... Types>
InputModel::Ptr load(const Types&... vars) const;
InputModel::Ptr load(const ov::AnyVector& vars) const;
virtual std::shared_ptr<ov::Model> convert(const InputModel::Ptr& model) const;
virtual void convert(const std::shared_ptr<ov::Model>& partially_converted) const;
virtual std::shared_ptr<ov::Model> convert_partially(const InputModel::Ptr& model) const;
virtual std::shared_ptr<ov::Model> decode(const InputModel::Ptr& model) const;
virtual void normalize(const std::shared_ptr<ov::Model>& model) const;
virtual std::string get_name() const;
virtual void add_extension(const std::shared_ptr<ov::Extension>& extension);
void add_extension(const std::vector<std::shared_ptr<ov::Extension>>& extensions);
void add_extension(const std::string& library_path);
template <
class T,
typename std::enable_if<std::is_base_of<ov::Extension, T>::value, bool>::type = true
>
void add_extension(const T& extension);
template <
class T,
class... Targs,
typename std::enable_if<std::is_base_of<ov::Extension, T>::value, bool>::type = true
>
void add_extension(
const T& extension,
Targs... args
);
bool supported(const std::vector<ov::Any>& variants) const;
};
Detailed Documentation¶
An interface for identifying a frontend for a particular framework. Provides an ability to load and convert of input model.
Construction¶
FrontEnd()
Default constructor.
Methods¶
template <typename... Types>
bool supported(const Types&... vars) const
Validates if FrontEnd can recognize model with parameters specified. Same parameters should be used to load model.
Parameters:
vars |
Any number of parameters of any type. What kind of parameters are accepted is determined by each FrontEnd individually, typically it is std::string containing path to the model file. For more information please refer to specific FrontEnd documentation. |
Returns:
true if model recognized, false - otherwise.
template <typename... Types>
InputModel::Ptr load(const Types&... vars) const
Loads an input model by any specified arguments. Each FrontEnd separately defines what arguments it can accept.
Parameters:
vars |
Any number of parameters of any type. What kind of parameters are accepted is determined by each FrontEnd individually, typically it is std::string containing path to the model file. For more information please refer to specific FrontEnd documentation. |
Returns:
Loaded input model.
virtual std::shared_ptr<ov::Model> convert(const InputModel::Ptr& model) const
Completely convert and normalize entire Model, throws if it is not possible.
Parameters:
model |
Input model |
Returns:
fully converted OV Model
virtual void convert(const std::shared_ptr<ov::Model>& partially_converted) const
Completely convert the remaining, not converted part of a Model.
Parameters:
partiallyConverted |
partially converted OV Model |
virtual std::shared_ptr<ov::Model> convert_partially(const InputModel::Ptr& model) const
Convert only those parts of the model that can be converted leaving others as-is. Converted parts are not normalized by additional transformations; normalize Model or another form of convert Model should be called to finalize the conversion process.
Parameters:
model |
Input model |
Returns:
partially converted OV Model
virtual std::shared_ptr<ov::Model> decode(const InputModel::Ptr& model) const
Convert operations with one-to-one mapping with decoding nodes. Each decoding node is an OV node representing a single FW operation node with all attributes represented in FW-independent way.
Parameters:
model |
Input model |
Returns:
OV Model after decoding
virtual void normalize(const std::shared_ptr<ov::Model>& model) const
Runs normalization passes on Model that was loaded with partial conversion.
Parameters:
partially converted OV Model |
virtual std::string get_name() const
Gets name of this FrontEnd. Can be used by clients if frontend is selected automatically by FrontEndManager::load_by_model.
Returns:
Current frontend name. Empty string if not implemented
virtual void add_extension(const std::shared_ptr<ov::Extension>& extension)
Register base extension in the FrontEnd.
Parameters:
extension |
base extension |
void add_extension(const std::vector<std::shared_ptr<ov::Extension>>& extensions)
Register base extensions in the FrontEnd.
Parameters:
extensions |
vector of extensions |
void add_extension(const std::string& library_path)
Registers extension.
Parameters:
library_path |
path to library with ov::Extension |
template <
class T,
typename std::enable_if<std::is_base_of<ov::Extension, T>::value, bool>::type = true
>
void add_extension(const T& extension)
Registers extension.
Parameters:
extension |
Extension class which is inherited from ov::BaseOpExtension class |
template <
class T,
class... Targs,
typename std::enable_if<std::is_base_of<ov::Extension, T>::value, bool>::type = true
>
void add_extension(
const T& extension,
Targs... args
)
Registers extensions.
Parameters:
extension |
Extension class which is inherited from ov::Extension class |