Instructions to use SirComat/triple-tikitaka with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- timm
How to use SirComat/triple-tikitaka with timm:
import timm model = timm.create_model("hf_hub:SirComat/triple-tikitaka", pretrained=True) - Notebooks
- Google Colab
- Kaggle
Triple Tikitaka — BirdCLEF+ 2025 Species Classifier
An EfficientNet B0 model trained to classify birds, amphibians, mammals, and insects from 5-second audio chunks, using the BirdCLEF+ 2025 Kaggle competition dataset (recordings from the Middle Magdalena Valley, Colombia).
Full inference pipeline, FastAPI serving app, and an LLM-powered plausibility-checking agent live in the companion GitHub repo: BarnaP02/Triple_Tikitaka.
Results
Evaluated on a held-out split (test_manifest.csv), 205 species:
| Metric | Accuracy |
|---|---|
| Top-1 | 87.84% |
| Top-3 | 93.47% |
| Top-5 | 95.06% |
Model details
- Architecture:
timm.create_model("efficientnet_b0", pretrained=True, num_classes=205), 3-channel input satisfied by repeating a single-channel mel spectrogram 3×. - Input: 5-second audio chunks (160,000 samples @ 32kHz) → mel spectrogram (
n_fft=1024,hop_length=320,n_mels=128,f_min=50,f_max=16000) → dB scale → min-max normalized to[0, 1]. - Loss:
BCEWithLogitsLoss(multi-label formulation). Optimizer:AdamW+CosineAnnealingLR. Early stopping patience 7. - Best checkpoint: epoch 9, validation loss 0.0046.
Checkpoint format
best_model.pth is a raw PyTorch checkpoint dict, not a state_dict alone:
{
"epoch": int,
"model_state": state_dict,
"optimizer_state": ...,
"scheduler_state": ...,
"val_loss": float,
"label2idx": dict, # species code -> class index, required for inference
"mlflow_run_id": str,
}
Usage
import torch
import timm
checkpoint = torch.load("best_model.pth", map_location="cpu", weights_only=False)
label2idx = checkpoint["label2idx"]
idx2label = {v: k for k, v in label2idx.items()}
model = timm.create_model("efficientnet_b0", pretrained=False, num_classes=len(label2idx), in_chans=3)
model.load_state_dict(checkpoint["model_state"])
model.eval()
See the GitHub repo for the full mel spectrogram preprocessing pipeline and a ready-to-run FastAPI inference server.
Training data & license
Trained on the BirdCLEF+ 2025 dataset, licensed CC BY-NC-SA 4.0. As a derivative work of that data, this model is released under the same license — non-commercial use only, with attribution, and any redistribution of derivative models must use a compatible license.
Attribution: BirdCLEF+ 2025 (LifeCLEF / Xeno-canto contributors).
- Downloads last month
- -