So, i finetuned a damoyolo network, followed every step of: hailo_model_zoo/training/damoyolo/README.rst at master · hailo-ai/hailo_model_zoo · GitHub
but:
I accidentally, successfully, compiled the onnx to a .hef for hailo10 instead of hailo8 so i know it can work (still no idea if the produced .hef does anything but that’s not the point here)
But when trying to convert the onnx to .hef for hailo8 (new venv, everything cleanly installed):
Assertion `validate_context_placements(*result)’ failed.
Full Flow
Start run for network damoyolo_tinynasL25_S …
Initializing the hailo8 runner…
[info] Translation started on ONNX model damoyolo_tinynasL25_S
[info] Restored ONNX model damoyolo_tinynasL25_S (completion time: 00:00:00.23)
[info] Extracted ONNXRuntime meta-data for Hailo model (completion time: 00:00:01.32)
[info] Start nodes mapped from original model: ‘images’: ‘damoyolo_tinynasL25_S/input_layer1’.
[info] End nodes mapped from original model: ‘Mul_239’, ‘Sigmoid_259’, ‘Mul_279’, ‘Sigmoid_299’, ‘Mul_319’, ‘Sigmoid_339’.
[info] Translation completed on ONNX model damoyolo_tinynasL25_S (completion time: 00:00:02.01)
[info] Saved HAR to: /media/mopf/data1/new_work/damoyolo_tinynasL25_S.har
Preparing calibration data…
[info] Loading model script commands to damoyolo_tinynasL25_S from /media/mopf/data1/new_work/hailo_model_zoo-2.16/hailo_model_zoo/cfg/alls/hailo8/base/damoyolo_tinynasL25_S.alls
[info] Found model with 3 input channels, using real RGB images for calibration instead of sampling random data.
[info] Starting Model Optimization
[info] Using default optimization level of 2
[warning] Reducing compression ratio to 0 because the number of parameters in the network is not large enough (15M and need at least 20M). Can be enforced using model_optimization_config(compression_params, auto_4bit_weights_ratio=0.200)
[info] Model received quantization params from the hn
[info] MatmulDecompose skipped
[info] Starting Mixed Precision
[info] Model Optimization Algorithm Mixed Precision is done (completion time is 00:00:00.86)
[info] LayerNorm Decomposition skipped
[info] Starting Statistics Collector
[info] Using dataset with 64 entries for calibration
Calibration: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 64/64 [00:31<00:00, 2.00entries/s]
[info] Model Optimization Algorithm Statistics Collector is done (completion time is 00:00:34.42)
[info] Output layer damoyolo_tinynasL25_S/conv60 with sigmoid activation was detected. Forcing its output range to be [0, 1] (original range was [7.490392454201356e-05, 0.8787712454795837]).
[info] Output layer damoyolo_tinynasL25_S/conv72 with sigmoid activation was detected. Forcing its output range to be [0, 1] (original range was [3.9649399695917964e-05, 0.9316549301147461]).
[info] Output layer damoyolo_tinynasL25_S/conv83 with sigmoid activation was detected. Forcing its output range to be [0, 1] (original range was [1.772598443494644e-05, 0.9362478852272034]).
[info] Starting Fix zp_comp Encoding
[info] Model Optimization Algorithm Fix zp_comp Encoding is done (completion time is 00:00:00.00)
[info] Matmul Equalization skipped
[info] Starting MatmulDecomposeFix
[info] Model Optimization Algorithm MatmulDecomposeFix is done (completion time is 00:00:00.00)
[info] No shifts available for layer damoyolo_tinynasL25_S/conv82/conv_op, using max shift instead. delta=0.6360
[info] No shifts available for layer damoyolo_tinynasL25_S/conv83/conv_op, using max shift instead. delta=0.6301
[info] No shifts available for layer damoyolo_tinynasL25_S/conv83/conv_op, using max shift instead. delta=0.3150
[info] No shifts available for layer damoyolo_tinynasL25_S/conv82/conv_op, using max shift instead. delta=0.0030
[info] No shifts available for layer damoyolo_tinynasL25_S/conv82/conv_op, using max shift instead. delta=0.0030
[info] No shifts available for layer damoyolo_tinynasL25_S/conv83/conv_op, using max shift instead. delta=0.3150
[info] Finetune encoding skipped
[info] Bias Correction skipped
[info] Adaround skipped
[info] Quantization-Aware Fine-Tuning skipped
[info] Starting Layer Noise Analysis
Full Quant Analysis: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [02:22<00:00, 71.48s/iterations]
[info] Model Optimization Algorithm Layer Noise Analysis is done (completion time is 00:02:27.16)
[info] Output layers signal-to-noise ratio (SNR): measures the quantization noise (higher is better)
[info] damoyolo_tinynasL25_S/output_layer1 SNR: 21.4 dB
[info] damoyolo_tinynasL25_S/output_layer2 SNR: 7.215 dB
[info] damoyolo_tinynasL25_S/output_layer3 SNR: 23.24 dB
[info] damoyolo_tinynasL25_S/output_layer4 SNR: 10.28 dB
[info] damoyolo_tinynasL25_S/output_layer5 SNR: 27.56 dB
[info] damoyolo_tinynasL25_S/output_layer6 SNR: 17.93 dB
[info] Model Optimization is done
[info] Saved HAR to: /media/mopf/data1/new_work/damoyolo_tinynasL25_S.har
[info] Loading model script commands to damoyolo_tinynasL25_S from /media/mopf/data1/new_work/hailo_model_zoo-2.16/hailo_model_zoo/cfg/alls/hailo8/base/damoyolo_tinynasL25_S.alls
[info] To achieve optimal performance, set the compiler_optimization_level to “max” by adding performance_param(compiler_optimization_level=max) to the model script. Note that this may increase compilation time.
[info] Loading network parameters
[info] Starting Hailo allocation and compilation flow
[info] Building optimization options for network layers…
[info] Successfully built optimization options - 5s 457ms
[info] Trying to compile the network in a single context
[info] Running Auto-Merger
[info] Auto-Merger is done
compiler: ../src/allocator/context_split.cpp:75: static std::shared_ptrallocator::ContextSplit allocator::ContextSplit::Create(std::shared_ptr<utils::GraphInterface<network_graph::NetworkNode, network_graph::NetworkEdge> >, const NodesByContextMap&, const allocator::ContextPlacements&): Assertion `validate_context_placements(*result)’ failed.
[error] Failed to produce compiled graph
[error] BackendAllocatorException: Compilation failed with unexpected crash
I’m so close to being done with this shit, even the predefined tutorial stuff doesn’t work…
Please has anyone an idea?!