You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Quantizers now require to specify a matching proxy class as proxy_class attribute. This is necessary to export more custom quantization techniques through BrevitasONNX. Quantization solvers like WeightQuantSolver already specify their corresponding proxy_class. Any custom quantizer that doesn't inherit from built-in solvers or quantizers will break.
Features
New brevitas.fx subpackage with:
A backport of torch.fx from version 1.8.1 to earlier versions of PyTorch down to 1.3.1.
A generalized tracer (brevitas.fx.value_tracer) that is capable of partially evaluating against the concrete_args without reducing down to constants, as illustrated here pytorch/pytorch#56862. This allows to trace through conditionals and unpacking of tuples as long as representative input data is provided.
A symbolic tracer that accounts for Brevitas layers as leaf modules (brevitas.fx.brevitas_symbolic_trace) and its generalized variant (brevitas.fx.brevitas_value_trace).
Port existing graph quantization transformations in brevitas.graph to brevitas.fx. Still not ready for easy public consumption, but useful to anyone that knows what they are doing.
Rewrite bias export in the FINN ONNX export flow.
Add DPURound, with matching STE implementations and wrappers.
Add matching implementations for the symbolic ops Quant and DecoupledQuant in the BrevitasONNX export flow.
Bugfixes
Fix leftover issues with 16b datatypes not being preserved after quantization during mixed-precision training.
Fix per-channel quantization on QuantConvTranspose1d/2d.
Fix per-channel quantization whenever two layers with quantized weights share the same quantizer.