CPU Optimizer
Optimize models for CPU inference
Overview
optimize_for_cpu prepares a model for efficient CPU inference by combining:
- Channels-last memory format — optimizes layout for CNN operations on CPU
- Compilation —
torch.compile(default) ortorch.jit.tracefor operator fusion
| Backend | Speed | Compatibility | Best For |
|---|---|---|---|
"compile" |
Faster | Most models | Default choice |
"trace" |
Good | Requires static shapes | Legacy / mobile |
from fasterai.misc.cpu_optimizer import optimize_for_cpu
model = resnet18(pretrained=True)
sample = torch.randn(1, 3, 224, 224)
# Default: torch.compile
optimized = optimize_for_cpu(model, sample)
# Or JIT trace for mobile/static shapes
traced = optimize_for_cpu(model, sample, backend="trace")Note:
accelerate_model_for_cpuis deprecated. Useoptimize_for_cpuinstead.
See Also
- BN Folding — Fold batch normalization
- ONNX Export — Export for deployment