Hello,
I’m trying to convert a yolo11 model using the docker image. In the optimization step, I get this error:
[info] activation fitting started for best_onnx/reduce_sum_softmax1/act_op
Traceback (most recent call last):
File “/tmp/tst/./yolo_optimize_har.py”, line 190, in
main()
File “/tmp/tst/./yolo_optimize_har.py”, line 187, in main
optimize_har(model_name, har_name, alls_file, calib)
File “/tmp/tst/./yolo_optimize_har.py”, line 150, in optimize_har
runner.optimize(calib_dataset)
File “/local/workspace/hailo_virtualenv/lib/python3.10/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.10/site-packages/hailo_sdk_client/runner/client_runner.py”, line 2206, in optimize
result = self._optimize(
File “/local/workspace/hailo_virtualenv/lib/python3.10/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.10/site-packages/hailo_sdk_client/runner/client_runner.py”, line 2025, in _optimize
checkpoint_info = self._sdk_backend.full_quantization(
File “/local/workspace/hailo_virtualenv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/sdk_backend.py”, line 1196, in full_quantization
new_checkpoint_info = self._full_acceleras_run(
File “/local/workspace/hailo_virtualenv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/sdk_backend.py”, line 1434, in _full_acceleras_run
new_checkpoint_info = self._optimization_flow_runner(optimization_flow, checkpoint_info)
File “/local/workspace/hailo_virtualenv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/sdk_backend.py”, line 2088, in _optimization_flow_runner
optimization_flow.run()
File “/local/workspace/hailo_virtualenv/lib/python3.10/site-packages/hailo_model_optimization/tools/orchestator.py”, line 239, in wrapper
return func(self, *args, **kwargs)
File “/local/workspace/hailo_virtualenv/lib/python3.10/site-packages/hailo_model_optimization/flows/optimization_flow.py”, line 357, in run
step_func()
File “/local/workspace/hailo_virtualenv/lib/python3.10/site-packages/hailo_model_optimization/tools/subprocess_wrapper.py”, line 140, in parent_wrapper
raise SubprocessTracebackFailure(*child_messages)
hailo_model_optimization.acceleras.utils.acceleras_exceptions.SubprocessTracebackFailure: Subprocess failed with exception: layer best_onnx/matmul2 does not support shift delta. To overcome this issue you should force larger range at the inputs of the layer using command quantization_param([layer_name], force_range_in=[range_min, range_max], force_range_index=index) current range of input 0 is [0.001, 0.023] and input 1 is [-6.135, 6.285].You should increase the multiplication of these ranges by a factor of 2.734, e.g. you can apply factor of sqrt(2.734) to both inputs:
quantization_param([best_onnx/matmul2], force_range_in=[0.002, 0.038], force_range_index=0)
quantization_param([best_onnx/matmul2], force_range_in=[-10.144, 10.392], force_range_index=1)
I tried adding the given commands to my .alls file but I get a new error:
[info] Starting Model Optimization
Traceback (most recent call last):
File “/tmp/tst/./yolo_optimize_har.py”, line 190, in
main()
File “/tmp/tst/./yolo_optimize_har.py”, line 187, in main
optimize_har(model_name, har_name, alls_file, calib)
File “/tmp/tst/./yolo_optimize_har.py”, line 150, in optimize_har
runner.optimize(calib_dataset)
File “/local/workspace/hailo_virtualenv/lib/python3.10/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.10/site-packages/hailo_sdk_client/runner/client_runner.py”, line 2206, in optimize
result = self._optimize(
File “/local/workspace/hailo_virtualenv/lib/python3.10/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.10/site-packages/hailo_sdk_client/runner/client_runner.py”, line 2025, in _optimize
checkpoint_info = self._sdk_backend.full_quantization(
File “/local/workspace/hailo_virtualenv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/sdk_backend.py”, line 1194, in full_quantization
self.setup_quantization(data_continer, work_dir=work_dir)
File “/local/workspace/hailo_virtualenv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/sdk_backend.py”, line 1138, in setup_quantization
config = self.apply_quantization_script(data_continer)
File “/local/workspace/hailo_virtualenv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/sdk_backend.py”, line 1085, in apply_quantization_script
return self._apply_quantization_script_with_flavor()
File “/local/workspace/hailo_virtualenv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/sdk_backend.py”, line 1103, in _apply_quantization_script_with_flavor
config = verify_commands(self._model, mo_commands, flavor_config)
File “/local/workspace/hailo_virtualenv/lib/python3.10/site-packages/hailo_sdk_common/hailo_nn/model_optimization/configuration_verifier.py”, line 65, in verify_commands
verifier = ModelConfigurationValidator(hn_model, commands, allocation_mode, pre_quantization_mode)
File “/local/workspace/hailo_virtualenv/lib/python3.10/site-packages/hailo_sdk_common/hailo_nn/model_optimization/configuration_verifier.py”, line 120, in init
self._config = ModelOptimizationConfig(**commands)
File “/local/workspace/hailo_virtualenv/lib/python3.10/site-packages/pydantic/v1/main.py”, line 341, in init
raise validation_error
pydantic.v1.error_wrappers.ValidationError: 1 validation error for ModelOptimizationConfig
translation_config → layers → best_onnx/matmul2 → force_range_in
wrong tuple length 4, expected 2 (type=value_error.tuple.length; actual_length=4; expected_length=2)
Here’s my .alls file:
normalization1 = normalization([0.0, 0.0, 0.0], [255.0, 255.0, 255.0])
change_output_activation(conv74, sigmoid)
change_output_activation(conv90, sigmoid)
change_output_activation(conv105, sigmoid)
quantization_param([best_onnx/matmul2], force_range_in=[0.002, 0.038], force_range_index=0)
quantization_param([best_onnx/matmul2], force_range_in=[-10.144, 10.392], force_range_index=1)
nms_postprocess(‘nms_layer_config.json’, meta_arch=yolov8, engine=cpu)
model_optimization_config(calibration, batch_size=2)
post_quantization_optimization(finetune, policy=enabled, learning_rate=0.00001)
performance_param(compiler_optimization_level=max)
resources_param(max_apu_utilization=0.8, max_compute_16bit_utilization=0.8, max_compute_utilization=0.8, max_control_utilization=0.8, max_input_aligner_utilization=0.8, max_memory_utilization=0.8, max_utilization=0.0)
I’m guessing I’m supposed to put the new commands elsewhere?