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

# Load model
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()

# Preprocessing
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])
])

# Inference
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

Downloads last month
19
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support