🩺 Breast Cancer Classification Using Swin Transformer (Hugging Face)

This repository contains a fine-tuned Swin Transformer Tiny model from Hugging Face trained on a colorized CT and X-ray breast cancer dataset for binary classification. The model classifies images into:

  • Malignant (1)
  • Benign / Normal (0)

The dataset includes colorized medical images enhanced with advanced colorization techniques to aid diagnostic AI models and medical professionals.


πŸ“Š Dataset Information

Note: This dataset focuses on CT and X-ray images colorized with various methods to improve visual interpretation and enhance model training. The model does not include the dataset itself.


🧠 Model Architecture

  • Model Type: Swin Transformer Tiny (pretrained on ImageNet)
  • Framework: PyTorch + Hugging Face Transformers
  • Base Model: microsoft/swin-tiny-patch4-window7-224
  • Model Source: microsoft/swin-tiny-patch4-window7-224
  • Input Size: 224x224 RGB
  • Loss Function: CrossEntropyLoss
  • Optimizer: Adam
  • Fine-tuning: Final classification head modified for 2 classes

🏁 Training Pipeline Summary

  1. Image Preprocessing:

    • Using Hugging Face AutoImageProcessor for normalization and resizing
    • Data augmentations via torchvision.transforms (horizontal/vertical flips, rotations, etc.)
  2. Data Loading:

    • Dataset split into train, validation, and test sets
    • Loaded with torchvision.datasets.ImageFolder and wrapped in DataLoader
  3. Model:

    • Loaded pretrained Swin Transformer Tiny from Hugging Face
    • Classification head adapted for binary classification (num_labels=2)
  4. Training:

    • Optimizer: Adam
    • Loss: CrossEntropyLoss
    • Training on GPU
  5. Saving:

    • Model weights saved as pytorch_model.bin
    • Hugging Face processor saved as needed

πŸ“ˆ Results

Metric Value
Train Accuracy 99.05%
Val Accuracy 82.25%
Test Accuracy 79.00%
Test Loss 0.9054

πŸ” Intended Use

This model is intended for:

  • Educational and research purposes in medical image analysis
  • Building AI tools for breast cancer detection using colorized CT and X-ray images
  • Demonstrating transfer learning with Hugging Face Swin Transformer models on medical datasets

⚠️ Not for clinical diagnosis or deployment without further validation and regulatory approval.


πŸš€ Inference Example (Python)

from transformers import AutoImageProcessor, SwinForImageClassification
from PIL import Image
import torch

# Load model and processor
model_path = "Koushim/breast-cancer-swin-classifier"  # Your HF repo
processor = AutoImageProcessor.from_pretrained(model_path)
model = SwinForImageClassification.from_pretrained(model_path).eval()

# Load and preprocess image
image = Image.open("your_image.jpg").convert("RGB")
inputs = processor(images=image, return_tensors="pt")

# Predict
with torch.no_grad():
    outputs = model(**inputs)
    predicted_class = outputs.logits.argmax(-1).item()

labels = ["benign", "malignant"]
print("Predicted class:", labels[predicted_class])
Downloads last month
19
Safetensors
Model size
27.5M params
Tensor type
I64
Β·
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support