During optimization of almost any model I face the following error right after calibration:
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_sdk_common/states/states.py", line 16, in wrapped_func
return func(self, *args, **kwargs)
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_sdk_client/runner/client_runner.py", line 1674, in optimize
self._optimize(calib_data, data_type=data_type, work_dir=work_dir)
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_sdk_common/states/states.py", line 16, in wrapped_func
return func(self, *args, **kwargs)
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_sdk_client/runner/client_runner.py", line 1542, in _optimize
self._sdk_backend.full_quantization(calib_data, data_type=data_type, work_dir=work_dir)
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_sdk_client/sdk_backend/sdk_backend.py", line 910, in full_quantization
self._full_acceleras_run(self.calibration_data, data_type)
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_sdk_client/sdk_backend/sdk_backend.py", line 1034, in _full_acceleras_run
optimization_flow.run()
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/flows/optimization_flow.py", line 246, in run
self.step1()
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/tools/subprocess_wrapper.py", line 63, in parent_wrapper
func(self, *args, **kwargs)
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/flows/optimization_flow.py", line 256, in step1
self.core_quantization()
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/flows/optimization_flow.py", line 298, in core_quantization
self._create_hw_params()
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/flows/optimization_flow.py", line 335, in _create_hw_params
create_hw_params.run()
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/algorithms/optimization_algorithm.py", line 47, in run
return super().run()
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/algorithms/algorithm_base.py", line 120, in run
self._run_int()
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/algorithms/create_hw_params/create_hw_params.py", line 318, in _run_int
comp_to_retry = self._create_hw_params_component(matching_component_group)
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/algorithms/create_hw_params/create_hw_params.py", line 197, in _create_hw_params_component
retry_negative_exp_list = self._hanlde_negative_exponent(layer, matching_component_group)
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/algorithms/create_hw_params/create_hw_params.py", line 209, in _hanlde_negative_exponent
algo.run()
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/algorithms/optimization_algorithm.py", line 47, in run
return super().run()
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/algorithms/algorithm_base.py", line 120, in run
self._run_int()
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/algorithms/neg_exponent_fixer/neg_exp_fixer.py", line 70, in _run_int
l_fix = self.fix_output(l_fix)
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/algorithms/neg_exponent_fixer/neg_exp_fixer.py", line 112, in fix_output
l_fix = self._split_layer_solution(l_fix)
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/algorithms/neg_exponent_fixer/neg_exp_fixer.py", line 137, in _split_layer_solution
a_layer, b_layer = splitter.split_layer(layer, auto_clip=self._check_feature(cfg.auto_clip), rank=cfg.rank)
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/algorithms/neg_exponent_fixer/layer_splitter.py", line 65, in split_layer
a_stats, b_stats = self._propagate_stats(original_stats, auto_clip=clip_range)
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/algorithms/neg_exponent_fixer/layer_splitter.py", line 115, in _propagate_stats
a_stats = create_stats(original_stats, map_a)
File "/local/workspace/hailo_virtualenv/lib/python3.8/site-packages/hailo_model_optimization/algorithms/neg_exponent_fixer/layer_splitter.py", line 112, in create_stats
res[key] = stats[new_key]
KeyError: 'stats/preact/dynamic_histogram'
I’m using hailo-dataflow-compiler==3.27.0
in a hailo_ai_sw_suite_2024-04
container. The models I’ve tried to quantize:
resnext50 - success
resnext101 - KeyError
efficientnetv2s - KeyError
regnet_y_1.6f - KeyError
I was thinking the problem occurs because of global_avgpool_reduction
or because converting of global average pooling layers to fp16, but then I faced the same error for resnext101 which didn’t include any of those in the optimization script. Could somebody please help with this?