Quantization
ONNX Runtime provides comprehensive quantization tools to reduce model size and improve inference performance by converting models from floating-point to lower-precision integer representations.Quantization Methods
quantize_dynamic()
Dynamic quantization converts weights to INT8 while computing activations in floating-point.str | Path
required
Path to the input ONNX model.
str | Path
required
Path to save the quantized model.
QuantType
Data type for weights: QuantType.QInt8 or QuantType.QUInt8. Default is QInt8.
list[str]
Operator types to quantize (e.g., [“MatMul”, “Conv”]). If None, quantizes all supported ops.
bool
Use per-channel quantization for weights. Default is False.
bool
Use 7-bit quantization for better accuracy on non-VNNI CPUs. Default is False.
list[str]
Specific node names to quantize. If specified, only these nodes are quantized.
list[str]
Node names to exclude from quantization.
bool
Store large models (>2GB) with external data. Default is False.
quantize_static()
Static quantization quantizes both weights and activations using calibration data.CalibrationDataReader
required
Data reader that provides calibration samples for activation quantization.
QuantFormat
Quantization format: QuantFormat.QOperator or QuantFormat.QDQ. Default is QDQ.
QuantType
Data type for activations. Default is QInt8.
CalibrationMethod
Calibration method: MinMax, Entropy, or Percentile. Default is MinMax.
dict
Additional options for quantization behavior.
quantize()
Unified quantization function using configuration objects.Configuration Classes
DynamicQuantConfig
StaticQuantConfig
Calibration Data Reader
CalibrationDataReader
Base class for providing calibration data to static quantization.Example Usage
Dynamic Quantization
Static Quantization
Using Configuration Objects
Pre-processing Before Quantization
Calibration Methods
CalibrationMethod
Uses minimum and maximum values from calibration data. Fast but may not be optimal.
CalibrationMethod
Uses KL divergence to find optimal quantization parameters. More accurate but slower.
CalibrationMethod
Uses percentile values to clip outliers. Good for data with outliers.
Choosing Calibration Method
Advanced Options
Comparing Quantized Models
Related APIs
- InferenceSession - Run quantized models
- SessionOptions - Configure execution
- Transformers - Optimize transformer models