Plant Classifier โ EfficientNet-B3, 39 classes
Frozen PyTorch checkpoint for plant/crop classification. The model was trained with supervised contrastive pretraining, cross-entropy fine-tuning, and TrivialAugment.
Intended use
The model predicts the plant identity before a crop-specific disease detector and recommendation system. It is a plant classifier, not a disease classifier.
Input preprocessing
- Convert the image to RGB.
- Resize the longest side to 380 pixels while preserving aspect ratio.
- Pad to 380 ร 380 with black pixels.
- Normalize with ImageNet mean
(0.485, 0.456, 0.406)and standard deviation(0.229, 0.224, 0.225). - Do not apply training augmentation during inference.
The checkpoint contains model and class_to_idx. Reconstruct torchvision.models.efficientnet_b3(weights=None), replace the final classifier with a 39-output linear layer, and load checkpoint["model"].
For confidence scores, apply softmax directly to the logits. The deployed API intentionally uses raw, uncalibrated probabilities.
Frozen evaluation
| Metric | Result |
|---|---|
| Validation macro F1 | 0.933455 |
| Test macro F1 | 0.929491 |
| Test macro recall | 0.930658 |
| Test accuracy | 0.931547 |
| Test top-3 accuracy | 0.981436 |
Files
model.pt: frozen EfficientNet-B3 checkpoint.class_to_idx.json: authoritative output-index mapping.model_config.json: architecture and preprocessing contract.SHA256SUMS: checkpoint integrity checksum.FROZEN_MODEL.md: frozen-run provenance and metrics.