2 from ..utils.network_info import NetworkInfo
5 class CalibrationConfiguration:
7 Class for parsing input config
23 ignore_layer_types: list,
24 ignore_layer_types_path: str,
25 ignore_layer_names: list,
26 ignore_layer_names_path: str,
27 benchmark_iterations_count: int,
29 threshold_step: float,
30 threshold_boundary: float,
31 simplified_mode: bool = False
35 self._precision = precision.upper()
37 self._weights = weights
38 self._tmp_directory = tmp_directory
39 self._output_model = output_model
40 self._output_weights = output_weights
41 self._cpu_extension = cpu_extension
42 self._gpu_extension = gpu_extension
44 self._batch_size = batch_size
45 self._threshold = threshold
46 self._ignore_layer_types = ignore_layer_types
47 self._ignore_layer_types_path = ignore_layer_types_path
48 self._ignore_layer_names = ignore_layer_names
49 self._ignore_layer_names_path = ignore_layer_names_path
50 self._benchmark_iterations_count = benchmark_iterations_count
51 self._progress = progress
52 self._threshold_step = threshold_step
53 self._threshold_boundary = threshold_boundary
54 self._simplified_mode = simplified_mode
59 def __exit__(self, type, value, traceback):
63 if self.tmp_directory:
64 shutil.rmtree(self.tmp_directory)
65 self._tmp_directory = None
68 def config(self) -> list:
72 def precision(self) -> str:
73 return self._precision
76 def model(self) -> str:
80 def weights(self) -> str:
84 def tmp_directory(self) -> str:
85 return self._tmp_directory
88 def output_model(self) -> str:
89 return self._output_model
92 def output_weights(self) -> str:
93 return self._output_weights
96 def cpu_extension(self) -> str:
97 return self._cpu_extension
100 def gpu_extension(self) -> str:
101 return self._gpu_extension
104 def device(self) -> str:
108 def batch_size(self) -> int:
109 return self._batch_size
112 def threshold(self) -> int:
113 return self._threshold
116 def ignore_layer_types(self):
117 return self._ignore_layer_types
120 def ignore_layer_types_path(self) -> str:
121 return self._ignore_layer_types_path
124 def ignore_layer_names(self):
125 return self._ignore_layer_names
128 def ignore_layer_names_path(self) -> str:
129 return self._ignore_layer_names_path
132 def benchmark_iterations_count(self) -> int:
133 return self._benchmark_iterations_count
136 def progress(self) -> str:
137 return self._progress
140 def threshold_step(self) -> float:
141 return self._threshold_step
144 def threshold_boundary(self) -> float:
145 return self._threshold_boundary
148 def simplified_mode(self) -> bool:
149 return self._simplified_mode
151 class CalibrationConfigurationHelper:
153 def read_ignore_layer_names(configuration: CalibrationConfiguration):
154 ignore_layer_types = configuration.ignore_layer_types
156 if configuration.ignore_layer_types_path:
157 ignore_layer_types_file = open(configuration.ignore_layer_types_path, 'r')
158 ignore_layer_types_from_file = [line.strip() for line in ignore_layer_types_file.readlines()]
159 ignore_layer_types.extend(ignore_layer_types_from_file)
161 ignore_layer_names = NetworkInfo(configuration.model).get_layer_names_by_types(layer_types=ignore_layer_types)
163 if configuration.ignore_layer_names_path:
164 ignore_layer_names_file = open(configuration.ignore_layer_names_path, 'r')
165 ignore_layer_names_from_file = [line.strip() for line in ignore_layer_names_file.readlines()]
166 ignore_layer_names.extend(ignore_layer_names_from_file)
168 return ignore_layer_names