Image classification
EfficientNet-B0
The CPU-friendly default classifier, around 21 MB on disk.
About this model
EfficientNet-B0 is the entry point of the EfficientNet scaling family. Around 5.3M parameters, fp32 ONNX is 21 MB. It returns top-K class probabilities over the 1000 ImageNet-1k classes.
The build is a fresh torchvision IMAGENET1K_V1 export with normalize baked into the graph. On M1 Max, CPU runs at 37 ms warm and CoreML at 18 ms warm.
What you can build
- Tag uploaded photos with a coarse subject before further routing.
- Run on-device classification with a 20 MB asset budget.
- Compare against MobileNetV3-Small when you need a bit more accuracy.
- Drop into a content pipeline that needs predictable CPU latency.
Variants & downloads
Choose the build for your appModel files are being prepared.
Explore the model’s examples, source links, and integration notes while download variants are added.
Performance
Results depend on the device, runtime, and test conditions. Each measurement keeps its own context.
M1 Max, macOS 15, ONNX Runtime 1.17
See original catalog hardware notes · CPU
37.1 ms
Warm inference
Reference result from the existing catalog; conversion variant and measurement date were not recorded.
M1 Max, macOS 15, ONNX Runtime 1.17
See original catalog hardware notes · CoreML
18.1 ms
Warm inference
Reference result from the existing catalog; conversion variant and measurement date were not recorded.
RTX 2060, Ubuntu 24.04, ONNX Runtime 1.24.3
See original catalog hardware notes · CUDA
4.4 ms
Warm inference
Reference result from the existing catalog; conversion variant and measurement date were not recorded.
Integration examples
Vision SDK integration
cpp
#include "imaged/sdk.hpp"
#include "imaged/families/classifier/classifier_family.hpp"
imaged::SDK::AI ai;
auto& config = ai.getOptions();
config.set("classifier.model", "weights/efficientnet_b0.onnx");
config.set("classifier.labels", "weights/labels.txt");
config.set("classifier.topK", 5);
imaged::SDK::ClassifierFamily family;
family.load(config);
imaged::SDK::Image image;
image.load("photo.jpg");
auto result = family.run(&image);
auto& classes = std::get<imaged::SDK::ClassificationResult>(result).classes;