Quantization
This page outlines the unit test coverage for the quantization.py
module, which implements three quantization strategies (IMX, FP16, and ONNX) for YOLO models, including model preparation, export, and configuration management.
Coverage Overview
The tests cover:
IMX quantization logic (platform-dependent)
FP16 quantization success and failure paths
ONNX export and quantization with subprocess
Fallback behavior for unsupported or misconfigured cases
The complete
quantize_model()
dispatcher logic
Fixtures
mock_model
Returns a mock YOLO model with .export()
, .save()
, and .half()
methods stubbed for isolated testing.
sample_quantize_config
Creates a dummy config dictionary with values for output paths, methods, and calibration settings used in dispatcher tests.
Function Tests
imx_quantization()
test_imx_quantization_non_linux
:
Ensures IMX quantization exits cleanly on unsupported platforms like Windows.test_imx_quantization_success
:
Simulates successful export and model file movement on a Linux environment using mocks and patches.
fp16_quantization()
test_fp16_quantization_success
:
Confirms the model is saved as expected when no errors occur.test_fp16_quantization_failure
:
Handles exceptions during saving and returnsNone
when failure occurs.
onnx_quantization()
test_onnx_quantization_success
:
Validates ONNX export and quantization pipeline, including subprocess calls and dynamic quantization.
quantize_model()
test_quantize_model_imx
:
Simulates an end-to-end quantization call using the IMX method with config and YAML preparation patched.test_quantize_model_unsupported_method
:
Verifies that unsupported quantization types raise aValueError
.test_quantize_model_missing_yaml
:
Ensures an error is raised when the quantization YAML file is missing from the config.
Summary
This test suite confirms robust handling of edge cases and method-specific branches in model quantization. It validates export success paths, platform constraints, and configuration-based logic for:
IMX
FP16
ONNX