Hello!
I’ve faced some issues with Layer Noise Analysis while trying to optimize_full_precision for yolov8:
[info] Starting Layer Noise Analysis`
Full Quant Analysis: 0%| | 0/16 [00:00<?, ?iterations/s]E0000 00:00:1764262369.223821 2508 meta_optimizer.cc:966] layout failed: INVALID_ARGUMENT: Size of values 1 does not match size of permutation 4 @ fanin shape inlat_model_1/normalization1_5/act_op_1/SelectV2-1-TransposeNHWCToNCHW-LayoutOptimizer
At the same time, Quantization-Aware Fine-Tuning is done correctly (using GPU)
My environment:
- Ubuntu 22.04, Kernel: 6.8.0-87-generic
- NVIDIA TITAN X (Pascal
- nvidia-driver-535
- cuda-12.5
- cudnn-9.16
- tensorflow[and-cuda] 2.18.0
- DFC 3.33.0
I am using yolov8s from hailo_model_zoo and the following code:
from hailo_sdk_client import ClientRunner
def main(har_model, calib_dataset):
runner = ClientRunner(har=har_model)
### yolov8s
alls = """
normalization1 = normalization(\[0.0, 0.0, 0.0\], \[255.0, 255.0, 255.0\])
model_optimization_config(calibration, batch_size=1)
change_output_activation(conv42, sigmoid)
change_output_activation(conv53, sigmoid)
change_output_activation(conv63, sigmoid)
nms_postprocess(‘./nms_layer_config_y8s.json’, meta_arch=yolov8, engine=cpu)
post_quantization_optimization(finetune, policy=enabled, learning_rate=0.000025)
performance_param(compiler_optimization_level=1)
“”"
runner.load_model_script(alls)
runner.optimize_full_precision(calib_data=calib_dataset)
runner.optimize(calib_dataset)
runner.save_har(quantized_har_model)