Skip to main content

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