ResNet50 for Bacterial Colony Classification
This model is a fine-tuned version of ResNet50 on the DIBaS (Digital Image of Bacterial Species) dataset for classifying bacterial colony images into 33 species.
Model Description
- Model Architecture: ResNet50 (pretrained on ImageNet)
- Task: Multi-class image classification (33 bacterial species)
- Dataset: DIBaS - 660+ microscopy images of bacterial colonies
- Framework: PyTorch + timm
Performance
| Metric |
Value |
| Validation Accuracy |
93.94% |
| Macro F1-Score |
0.939 |
| Parameters |
23.58M |
| Model Size |
90.2 MB |
| GPU Latency |
4.19 ms (RTX 4070 SUPER) |
| CPU Latency |
44.86 ms |
Comparison with Other Models
| Model |
Params (M) |
Val Accuracy |
| MobileNetV3-Large |
4.24 |
95.45% |
| ResNet50 |
23.58 |
93.94% |
| EfficientNet-B0 |
4.05 |
91.67% |
Training Details
- Optimizer: AdamW (lr=1e-3, weight_decay=1e-4)
- Epochs: 20
- Batch Size: 24
- Image Size: 224ร224
- Augmentation: RandomResizedCrop, HorizontalFlip
- Hardware: NVIDIA RTX 4070 SUPER
- Mixed Precision: Enabled (AMP)
- Train/Val/Test Split: 70/20/10 (stratified, seed=42)
How to Use
import timm
import torch
from PIL import Image
from torchvision import transforms
model = timm.create_model('resnet50', pretrained=False, num_classes=33)
state_dict = torch.load('pytorch_model.bin', map_location='cpu')
model.load_state_dict(state_dict)
model.eval()
transform = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])
image = Image.open('bacteria_image.jpg').convert('RGB')
input_tensor = transform(image).unsqueeze(0)
with torch.no_grad():
outputs = model(input_tensor)
predicted_class = outputs.argmax(dim=1).item()
print(f"Predicted class: {CLASS_NAMES[predicted_class]}")
Class Labels
CLASS_NAMES = [
"Acinetobacter_baumannii", "Actinomyces_israelii", "Bacteroides_fragilis",
"Bifidobacterium_spp", "Candida_albicans", "Clostridium_perfringens",
"Enterococcus_faecalis", "Enterococcus_faecium", "Escherichia_coli",
"Fusobacterium", "Lactobacillus_casei", "Lactobacillus_crispatus",
"Lactobacillus_delbrueckii", "Lactobacillus_gasseri", "Lactobacillus_jensenii",
"Lactobacillus_johnsonii", "Lactobacillus_paracasei", "Lactobacillus_plantarum",
"Lactobacillus_reuteri", "Lactobacillus_rhamnosus", "Lactobacillus_salivarius",
"Listeria_monocytogenes", "Micrococcus_spp", "Neisseria_gonorrhoeae",
"Porphyromonas_gingivalis", "Propionibacterium_acnes", "Proteus",
"Pseudomonas_aeruginosa", "Staphylococcus_aureus", "Staphylococcus_epidermidis",
"Staphylococcus_saprophyticus", "Streptococcus_agalactiae", "Veillonella"
]
Limitations
- Trained on single laboratory/microscope setup (DIBaS dataset)
- May not generalize to different imaging conditions
- Not validated for clinical diagnostic use
Related Models
Citation
@inproceedings{hoflaz2025bacterial,
title={Lightweight CNNs Outperform Vision Transformers for Bacterial Colony Classification},
author={Hoflaz, Ibrahim},
booktitle={IEEE Conference},
year={2025}
}
Resources