Instructions to use dronefreak/bdd100k-weather-efficientvit_b0 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- timm
How to use dronefreak/bdd100k-weather-efficientvit_b0 with timm:
import timm model = timm.create_model("hf_hub:dronefreak/bdd100k-weather-efficientvit_b0", pretrained=True) - Notebooks
- Google Colab
- Kaggle
EfficientViT-B0 Finetuned on BDD100K Weather Classification
Fine-tuned EfficientViT-B0 image classifier on the BDD100K Weather Classification dataset, trained and evaluated as part of BDD100K-Toolkit, a dependency-clean toolkit for preparing BDD100K, training models on it and evaluating them with the same metrics on the same splits.
7-class weather classification (clear / partly cloudy / overcast / rainy / snowy / foggy / unknown) derived from BDD100K's per-image attributes.weather field. Unofficial task; follows the Kaggle dataset of the same name.
Usage
import timm, torch
from huggingface_hub import hf_hub_download
from PIL import Image
from torchvision import transforms as T
ckpt = torch.load(
hf_hub_download("dronefreak/bdd100k-weather-efficientvit_b0", "best.pt"), map_location="cpu", weights_only=True
)
model = timm.create_model(
ckpt["model_name"], pretrained=False, num_classes=len(ckpt["class_names"])
)
model.load_state_dict(ckpt["state_dict"])
model.eval()
prep = T.Compose(
[T.Resize((ckpt["imgsz"],) * 2), T.ToTensor(), T.Normalize(ckpt["mean"], ckpt["std"])]
)
with torch.no_grad():
probs = model(prep(Image.open("street.jpg").convert("RGB"))[None]).softmax(1)[0]
print(ckpt["class_names"][probs.argmax()], f"{probs.max():.1%}")
Results
Evaluated on the test split (10000 images).
| Metric | Value |
|---|---|
| Macro F1 | 65.10% |
| Balanced accuracy | 63.62% |
| Macro precision | 67.11% |
| Macro recall | 63.62% |
| Top-1 accuracy | 82.79% |
| Top-5 accuracy | 99.79% |
Per class
| Class | Precision | Recall | F1 | Test images |
|---|---|---|---|---|
| clear | 89.67% | 93.49% | 91.54% | 5346 |
| foggy | 0.00% | 0.00% | 0.00% | 13 (few) |
| overcast | 69.24% | 65.78% | 67.47% | 1239 |
| partly cloudy | 68.19% | 64.50% | 66.30% | 738 |
| rainy | 86.10% | 69.65% | 77.00% | 738 |
| snowy | 86.24% | 72.56% | 78.81% | 769 |
| unknown | 70.34% | 79.34% | 74.57% | 1157 |
This checkpoint classifies none of the test images of foggy (13 images) correctly, so treat it as unsupported.
Model Zoo
All runs below were evaluated on the same test split, sorted by top-1 accuracy.
| Model | Top-1 | Macro F1 | Balanced acc | Macro precision |
|---|---|---|---|---|
| ConvNeXt-Atto | 83.00% | 67.44% | 65.25% | 81.38% |
| EfficientViT-B0 | 82.79% | 65.10% | 63.62% | 67.11% |
| ResNet-18 | 82.19% | 64.30% | 62.97% | 66.08% |
| MobileNetV4-Conv-Small | 82.16% | 66.51% | 64.37% | 80.44% |
| YOLO26n | 82.04% | 64.09% | 62.46% | 66.57% |
| YOLO11n | 81.32% | 62.91% | 61.19% | 65.68% |
| YOLOv8n | 81.22% | 63.07% | 61.42% | 65.52% |
Training
| Setting | Value |
|---|---|
| Epochs (max) | 50 |
| Epochs (trained) | 17 |
Best epoch (best.pt) |
7 |
best.pt chosen by |
macro_f1 on the valid split |
| Early stopping patience | 10 |
| Batch size | 128 |
| Image size | 224 |
| Optimizer | auto, resolved to AdamW (peak lr 3e-04) |
| Weights | EMA |
Dataset
dronefreak/BDD100K-Weather-Classification holds the prepared splits these models were trained and evaluated on.
Limitations
- Unofficial task: labels are BDD100K's per-image attributes, not a benchmark with a public leaderboard, so scores are only comparable with other models evaluated on this split.
- Not the official test set:
testhere is BDD100K's official validation split (the official test labels are not released) andvalidis a seeded 15% slice of the official train split. - Heavily imbalanced: rare classes have very few test images, so their per-class scores are noisy. Prefer macro F1 over accuracy.
- Images are US dashcam frames; generalization to other regions or camera setups is untested.
- BDD100K is released for non-commercial research and education. Check its license before any use of these weights beyond research.
clear,partly cloudyandovercastare subjective annotator calls, so expect label noise between neighbouring classes.
License
The weights are released under the license in the metadata above. They were trained on BDD100K, which is free for non-commercial research and education; commercial use needs separate permission (see https://www.bdd100k.com/). The prepared dataset on the Hub is tagged license: other, and the original BDD100K terms still apply.
Citation
Model
@article{cai2022efficientvit,
title={EfficientViT: Multi-Scale Linear Attention for High-Resolution Dense Prediction},
author={Cai, Han and Li, Junyan and Hu, Muyan and Gan, Chuang and Han, Song},
journal={arXiv preprint arXiv:2205.14756},
year={2022}
}
Dataset
@article{yu2018bdd100k,
title={BDD100K: A Diverse Driving Dataset for Heterogeneous Multitask Learning},
author={Yu, Fisher and Chen, Haofeng and Wang, Xin and Xian, Wenqi and Chen, Yingying and Liu, Fangchen and Madhavan, Vashisht and Darrell, Trevor},
journal={arXiv preprint arXiv:1805.04687},
year={2018}
}
Files
best.ptmetrics.jsonresults.csvassets/demo_banner.mp4assets/demo_banner_poster.jpgREADME.md
Reproduce
Trained and evaluated with BDD100K-Toolkit: bdd100k-evaluate --dataset bdd100k-weather --checkpoint <weights> --data-dir <prepared dir> --split test.
- Downloads last month
- -
Model tree for dronefreak/bdd100k-weather-efficientvit_b0
Base model
timm/efficientvit_b0.r224_in1kDataset used to train dronefreak/bdd100k-weather-efficientvit_b0
Collections including dronefreak/bdd100k-weather-efficientvit_b0
Papers for dronefreak/bdd100k-weather-efficientvit_b0
EfficientViT: Lightweight Multi-Scale Attention for On-Device Semantic Segmentation
BDD100K: A Diverse Driving Dataset for Heterogeneous Multitask Learning
Evaluation results
- Top-1 accuracy (test split) on BDD100K Weather ClassificationBDD100K-Toolkit82.790
- Macro F1 (test split) on BDD100K Weather ClassificationBDD100K-Toolkit65.100
- Macro precision (test split) on BDD100K Weather ClassificationBDD100K-Toolkit67.110
- Macro recall (test split) on BDD100K Weather ClassificationBDD100K-Toolkit63.620