Agent Skill
2/7/2026burn-onnx
This skill should be used when the user asks about "ONNX import", "PyTorch to Burn", "safetensors", "model conversion", "burn-import", "unsupported operator", "opset version", or importing external models into Burn.
J
johnzfitch
1GitHub Stars
1Views
npx skills add johnzfitch/burn-plugin
SKILL.md
| Name | burn-onnx |
| Description | This skill should be used when the user asks about "ONNX import", "PyTorch to Burn", "safetensors", "model conversion", "burn-import", "unsupported operator", "opset version", or importing external models into Burn. |
name: burn-onnx description: This skill should be used when the user asks about "ONNX import", "PyTorch to Burn", "safetensors", "model conversion", "burn-import", "unsupported operator", "opset version", or importing external models into Burn. version: 0.1.0
Burn Model Import
Knowledge for importing ONNX, PyTorch, and Safetensors models into Burn.
ONNX Import Overview
Burn uses burn-import crate for ONNX model conversion at build time.
Setup
Add to Cargo.toml:
[dependencies]
burn = { version = "0.16", features = ["wgpu"] }
[build-dependencies]
burn-import = "0.16"
Build Script
Create build.rs:
use burn_import::onnx::ModelGen;
fn main() {
ModelGen::new()
.input("models/my_model.onnx")
.out_dir("model/")
.run_from_script();
}
Generated Code
The build generates a Rust module with:
- Model struct matching ONNX architecture
- Weights embedded or loadable
- Type-safe forward method
mod model {
include!(concat!(env!("OUT_DIR"), "/model/my_model.rs"));
}
use model::Model;
let model = Model::<Backend>::default();
let output = model.forward(input);
Operator Coverage
burn-import supports common operators. Check coverage before import:
- Fully supported: Conv, Linear, ReLU, BatchNorm, MaxPool, etc.
- Partial: Some transformer ops, dynamic shapes
- Unsupported: Custom ops, some recent opset additions
Troubleshooting
Unsupported Operator
If import fails with unsupported op:
- Check if newer burn-import version supports it
- Consider opset conversion (downgrade to supported version)
- Implement manually and splice into model
Shape Mismatches
ONNX uses dynamic shapes, Burn uses static:
- Check input shapes match expected
- Use
reshapeto convert dynamic to static - Verify batch dimension handling
PyTorch Import
For PyTorch models without ONNX:
- Export from PyTorch:
torch.onnx.export(model, dummy_input, "model.onnx") - Use ONNX import flow above
Or manual weight loading:
- Save PyTorch weights as safetensors
- Define matching Burn architecture
- Load weights with key remapping
Additional Resources
Consult references/topic-map-onnx.md for:
- Complete operator coverage list
- Opset version compatibility
- Advanced import options
- Weight remapping patterns
Skills Info
Original Name:burn-onnxAuthor:johnzfitch
Download