base_models/
├── efficientnet_b4_ham10k/ # EfficientNet-B4 × 5
├── efficientnet_b7_imagenet/ # EfficientNet-B7 × 5
└── transformers/ # ViT × 5, Swin × 5
├── efficientnet_b4_ham10k/ # EfficientNet-B4 × 5
├── efficientnet_b7_imagenet/ # EfficientNet-B7 × 5
├── transformers/ # ViT × 5, Swin × 5
└── binary_classifiers/ # Binary classifiers × 15
1from huggingface_hub import snapshot_download
2
3# Option 1: Download base models only (20 models, ~5GB)
4snapshot_download(
5 repo_id="kindai-derma-ai/skin-lesion-ensemble",
6 local_dir="./models",
7 allow_patterns="base_models/**"
8)
9
10# Option 2: Download full ensemble (35 models, ~6.4GB)
11snapshot_download(
12 repo_id="kindai-derma-ai/skin-lesion-ensemble",
13 local_dir="./models",
14 ignore_patterns="base_models/**" # Avoid duplicates
15)
16
17# Option 3: Download everything
18snapshot_download(
19 repo_id="kindai-derma-ai/skin-lesion-ensemble",
20 local_dir="./models"
21)
1import torch
2import timm
3from PIL import Image
4from torchvision import transforms
5
6# Load model (example with EfficientNet-B4)
7model = timm.create_model('efficientnet_b4', pretrained=False, num_classes=8)
8checkpoint = torch.load('models/base_models/efficientnet_b4_ham10k/efficientnet_b4_ham10k_fold0.pth')
9model.load_state_dict(checkpoint['model_state_dict'])
10model.eval()
11
12# Preprocessing
13transform = transforms.Compose([
14 transforms.Resize((384, 384)),
15 transforms.ToTensor(),
16 transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
17])
18
19# Predict
20image = Image.open('skin_lesion.jpg').convert('RGB')
21input_tensor = transform(image).unsqueeze(0)
22
23with torch.no_grad():
24 output = model(input_tensor)
25 probabilities = torch.softmax(output, dim=1)
26 predicted_class = torch.argmax(probabilities, dim=1).item()
27
28class_names = ['ADM', 'BCC', 'Ephelis', 'Melanoma', 'Melasma', 'Nevus', 'SK', 'Solar_Lentigo']
29print(f"Prediction: {class_names[predicted_class]}")
30print(f"Confidence: {probabilities[0][predicted_class]:.2%}")
models/
├── base_models/ # Base models only (20 models)
│ ├── efficientnet_b4_ham10k/
│ ├── efficientnet_b7_imagenet/
│ └── transformers/
│
├── efficientnet_b4_ham10k/ # Full ensemble components
├── efficientnet_b7_imagenet/
├── transformers/
└── binary_classifiers/ # Binary refinement (full ensemble only)
1@misc{skin_lesion_ensemble_2024,
2 title={7-Model Ensemble for 8-Class Skin Lesion Classification},
3 author={Kindai Dermatology AI Lab},
4 year={2024},
5 howpublished={\url{https://huggingface.co/kindai-derma-ai/skin-lesion-ensemble}}
6}
This model is released under
CC BY-NC 4.0.