ONE - On-device Neural Engine
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
onert::odc::QuantizeManager Class Reference

#include <QuantizeManager.h>

Public Member Functions

 QuantizeManager ()=default
 
 QuantizeManager (QuantizeManager const &)=delete
 
QuantizeManageroperator= (QuantizeManager const &)=delete
 
void exportModelPath (const std::string &model_path)
 Set model path to export quantized model.
 
std::string & exportModelPath ()
 Get model path to export quantized model.
 
void quantizeType (QuantizeType qtype)
 Set quantize type.
 
bool quantize (const std::string &model_path)
 Quantize model.
 
bool setMinMaxRecordsThreshold (uint32_t value)
 Set the number of minmax records enough for quantization.
 
bool readyForQuantize ()
 checking minmax recording count and threshold for quantization
 
bool deleteMinMaxFile ()
 Delete MinMax File of on-device compiler.
 

Detailed Description

Definition at line 31 of file QuantizeManager.h.

Constructor & Destructor Documentation

◆ QuantizeManager() [1/2]

onert::odc::QuantizeManager::QuantizeManager ( )
default

◆ QuantizeManager() [2/2]

onert::odc::QuantizeManager::QuantizeManager ( QuantizeManager const &  )
delete

Member Function Documentation

◆ deleteMinMaxFile()

bool onert::odc::QuantizeManager::deleteMinMaxFile ( )

Delete MinMax File of on-device compiler.

Returns
Return true if file removed successfully

Definition at line 71 of file QuantizeManager.cc.

72{
73 auto &quantize_loader = QuantizerLoader::instance();
74 if (quantize_loader.loadLibrary() != 0)
75 return false;
76
77 auto quantizer = quantize_loader.get();
78 bool result = quantizer->deleteMinMaxFile();
79
80 return result;
81}
static QuantizerLoader & instance()
Get singleton instance of QuantizerLoader.
result
Definition infer.py:103

References onert::odc::QuantizerLoader::instance().

◆ exportModelPath() [1/2]

std::string & onert::odc::QuantizeManager::exportModelPath ( )
inline

Get model path to export quantized model.

Returns
Model path to export quantized model

Definition at line 52 of file QuantizeManager.h.

52{ return _export_model_path; }

◆ exportModelPath() [2/2]

void onert::odc::QuantizeManager::exportModelPath ( const std::string &  model_path)
inline

Set model path to export quantized model.

Parameters
model_pathModel path to export quantized model

Definition at line 45 of file QuantizeManager.h.

45{ _export_model_path = model_path; }

◆ operator=()

QuantizeManager & onert::odc::QuantizeManager::operator= ( QuantizeManager const &  )
delete

◆ quantize()

bool onert::odc::QuantizeManager::quantize ( const std::string &  model_path)

Quantize model.

Parameters
[in]model_pathModel path to quantize
Returns
true if success, otherwise false

Definition at line 26 of file QuantizeManager.cc.

27{
28 if (model_path.empty() || _export_model_path.empty())
29 return false;
30
31 // Compile function is thread-unsafe
32 static std::mutex lock;
33 std::lock_guard<std::mutex> guard(lock);
34
35 auto &quantize_loader = QuantizerLoader::instance();
36 if (quantize_loader.loadLibrary() != 0)
37 return false;
38
39 auto quantizer = quantize_loader.get();
40 auto result = quantizer->quantize(model_path.c_str(), _export_model_path.c_str(), _qtype);
41
42 // TODO Unload quantize library to reduce memory usage
43
44 return (result == 0);
45}

References onert::odc::QuantizerLoader::instance().

◆ quantizeType()

void onert::odc::QuantizeManager::quantizeType ( QuantizeType  qtype)
inline

Set quantize type.

Parameters
qtypequantization type

Definition at line 61 of file QuantizeManager.h.

61{ _qtype = qtype; }

◆ readyForQuantize()

bool onert::odc::QuantizeManager::readyForQuantize ( )

checking minmax recording count and threshold for quantization

Returns
true if ready, otherwise false

Definition at line 59 of file QuantizeManager.cc.

60{
61 auto &quantize_loader = QuantizerLoader::instance();
62 if (quantize_loader.loadLibrary() != 0)
63 return false;
64
65 auto quantizer = quantize_loader.get();
66 bool result = quantizer->readyForQuantize();
67
68 return result;
69}

References onert::odc::QuantizerLoader::instance().

◆ setMinMaxRecordsThreshold()

bool onert::odc::QuantizeManager::setMinMaxRecordsThreshold ( uint32_t  value)

Set the number of minmax records enough for quantization.

Returns
true if success, otherwise false

Definition at line 47 of file QuantizeManager.cc.

48{
49 auto &quantize_loader = QuantizerLoader::instance();
50 if (quantize_loader.loadLibrary() != 0)
51 return false;
52
53 auto quantizer = quantize_loader.get();
54 quantizer->setMinMaxRecordsThreshold(value);
55
56 return true;
57}

References onert::odc::QuantizerLoader::instance().


The documentation for this class was generated from the following files: