BaseConverter.h#

namespace ONNX_LIGHT_NAMESPACE
namespace version_conversion#
class BaseVersionConverter#
#include <BaseConverter.h>

Base class that stores adapters and converts models between opset versions.

Subclassed by ONNX_LIGHT_NAMESPACE::version_conversion::DefaultVersionConverter

Public Functions

BaseVersionConverter() = default#
virtual ~BaseVersionConverter() = default#
inline const Adapter &adapter_lookup(const Node *op, const OpSetID &initial_version, const OpSetID &target_version) const#

Returns the adapter for a node and a specific source/target opset pair. This method is intended to be called from convert_version once the caller has determined that an adapter must exist for this conversion step.

Note

Triggers ONNX_ASSERT when no matching adapter is registered.

Parameters:
  • op – Pointer to the node for which to look up the adapter.

  • initial_version – Source opset identifier for the conversion step.

  • target_version – Target opset identifier for the conversion step.

Returns:

Registered adapter matching op, initial_version and target_version.

virtual ModelProto convert_version(const ModelProto &mp_in, const OpSetID &initial_version, const OpSetID &target_version) const = 0#

Converts a model from one opset version to another.

Parameters:
  • mp_in – Input model.

  • initial_version – Source opset identifier.

  • target_version – Target opset identifier.

Returns:

Converted model.

inline void registerAdapter(std::unique_ptr<Adapter> a_ptr)#

Registers an adapter instance.

Parameters:

a_ptrAdapter to register.

inline void registerAdapter(const char *op, int64_t from, int64_t to, const NodeTransformerFunction &transformer)#

Registers a generic adapter from a transformation callback.

Parameters:
  • op – Operator name.

  • from – Source opset version.

  • to – Target opset version.

  • transformer – Callback that applies the node transformation.

Protected Attributes

std::unordered_map<std::string, std::unordered_map<std::string, std::unordered_map<std::string, std::unique_ptr<Adapter>>>> adapters#

Registered adapters keyed as {op_name: {from_opset: {to_opset: adapter}}}.

std::unordered_map<std::string, std::unordered_map<std::string, std::map<int64_t, const OpSchema*>>> all_schemas#

Operator schemas keyed as {op_name: {domain: {version: schema}}}.