Skip to content
ModelListedExternal
Download

Efficientnet B0 Isic2018 Classification

Modelo de clasificación multiclase de lesiones cutáneas dermoscópicas entrenado sobre HAM10000 (ISIC 2018 Task 3) mediante fine-tuning progresivo. Segunda etapa del pipeline de análisis de lesiones cutáneas —...

KindOtherBase modeltimm/efficientnet_b0.ra_in1kVersionRevision 636cae7

Model source

Kind
Other
File size
15.6 MB
Base model
timm/efficientnet_b0.ra_in1k
Version
vRevision 636cae7
Updated
Sep 28, 2026
Downloads
0
Source
Hugging Face

Source description

EfficientNet-B0 — Clasificación de Lesiones Cutáneas ISIC 2018

Modelo de clasificación multiclase de lesiones cutáneas dermoscópicas entrenado sobre HAM10000 (ISIC 2018 Task 3) mediante fine-tuning progresivo. Segunda etapa del pipeline de análisis de lesiones cutáneas — clasifica la región segmentada por U-Net en 7 categorías clínicas.

Repositorio: skin-lesion-analysis
Modelo de segmentación (primera etapa): unet-resnet34-isic2018-segmentation


Métricas

MétricaValor
F1 macro (val)0.7700
F1 weighted (val)0.7877
AUC macro (val)0.9719
Accuracy (val)0.77

Split 80/20 estratificado sobre HAM10000 (10.015 imágenes). 8.012 imágenes de entrenamiento, 2.003 de validación.

Métricas por clase

ClasePrecisionRecallF1Soporte
MEL — Melanoma0.400.820.54223
NV — Melanocytic nevus0.980.730.841341
BCC — Basal cell carcinoma0.770.920.84103
AKIEC — Actinic keratosis0.710.740.7265
BKL — Benign keratosis0.620.820.71220
DF — Dermatofibroma0.810.910.8623
VASC — Vascular lesion0.820.960.8928

Nota sobre MEL: precision 0.40 con recall 0.82 indica que el modelo genera falsos positivos de melanoma. En contexto clínico este comportamiento es aceptable — mejor sobrediagnosticar que infradiagnosticar — pero refleja la dificultad intrínseca de distinguir melanoma de nevus en imágenes ambiguas del dataset.


Uso

import torch
import timm
import albumentations as A
from albumentations.pytorch import ToTensorV2
from huggingface_hub import hf_hub_download
import numpy as np
from PIL import Image

CLASES = ["MEL", "NV", "BCC", "AKIEC", "BKL", "DF", "VASC"]

# 1. Descargar el checkpoint
ruta = hf_hub_download(
    repo_id="Jesusrodriguezf90/efficientnet-b0-isic2018-classification",
    filename="best_efficientnet_b0.pth"
)

# 2. Reconstruir el modelo
model = timm.create_model(
    "efficientnet_b0",
    pretrained=False,
    num_classes=7,
)
model.load_state_dict(torch.load(ruta, map_location="cpu"))
model.eval()

# 3. Preprocesamiento — mismo pipeline que en entrenamiento
transform = A.Compose([
    A.Resize(256, 256),
    A.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)),
    ToTensorV2(),
])

# 4. Inferencia
img = np.array(Image.open("imagen_dermoscopica.jpg").convert("RGB"))
tensor = transform(image=img)["image"].unsqueeze(0)

with torch.no_grad():
    logits = model(tensor)
    probs  = torch.softmax(logits, dim=1).squeeze()
    pred   = probs.argmax().item()

print(f"Predicción: {CLASES[pred]} ({probs[pred]:.3f})")

Arquitectura y entrenamiento

Fine-tuning progresivo

El entrenamiento se divide en dos fases para preservar los pesos preentrenados en ImageNet:

Fase 1 — encoder congelado (5 épocas, lr=1e-3): solo se entrenan los 8.967 parámetros del clasificador final. El encoder está congelado para evitar que los gradientes erráticos del clasificador recién inicializado destruyan las representaciones aprendidas en ImageNet.

Fase 2 — modelo completo descongelado (30 épocas máx, lr=1e-4): se descongela todo el modelo con lr reducido para afinar los pesos del encoder sin sobreescribir el conocimiento previo. Early stopping con paciencia=5 sobre F1 macro val.

Estrategia contra el desbalance (ratio 58.3x entre NV y DF)

Doble estrategia complementaria:

  • WeightedRandomSampler — sobremuestrea clases minoritarias en cada batch
  • CrossEntropyLoss con pesos de clase — penaliza más los errores en clases minoritarias

Proceso experimental

Se realizaron tres experimentos para determinar la configuración óptima:

ExperimentoConfiguraciónF1 macroAUC
E1 — baselineepochs_unfrozen=200.74930.9704
E2 — regularización+ drop_rate=0.2 + label_smoothing=0.1 + epochs_unfrozen=30~0.50~0.96
E3 — configuración final ✓Solo epochs_unfrozen=300.77000.9719

E2 demostró que combinar dropout adicional y label smoothing con un dataset fuertemente desbalanceado ralentiza la convergencia sin beneficio neto. La configuración final (E3) amplía el margen de entrenamiento para que el early stopping pueda actuar correctamente.

ParámetroValor
DatasetHAM10000 / ISIC 2018 Task 3
Imágenes entrenamiento8.012
Split80/20 estratificado (seed=42)
Resolución entrada256×256
Épocas fase 1 (frozen)5
Épocas fase 2 (unfrozen)30 máx (early stopping paciencia=5)
Épocas ejecutadas35
lr fase 11e-3
lr fase 21e-4
Weight decay1e-4
LossCrossEntropyLoss con pesos de clase
OptimizerAdamW
SchedulerReduceLROnPlateau (factor=0.1, patience=3)
Parámetros totales4.016.515
HardwareKaggle GPU T4

Limitaciones

  • El dataset HAM10000 está fuertemente desbalanceado — NV representa el 66.9% de las muestras. A pesar de la doble estrategia de balanceo, el modelo tiende a favorecer NV
  • MEL presenta precision baja (0.40) — el modelo genera falsos positivos de melanoma al confundirlo con nevus en imágenes ambiguas
  • Entrenado exclusivamente con imágenes dermoscópicas estándar — no aplicable a fotografías clínicas convencionales ni fotos de smartphone sin dermatoscopio
  • La clasificación en el pipeline completo se realiza sobre la imagen completa — en inferencia con U-Net, EfficientNet clasifica sobre la región enmascarada, lo que puede diferir del comportamiento en entrenamiento

Dataset

HAM10000 — ISIC 2018 Task 3
International Skin Imaging Collaboration (ISIC)
🔗 https://challenge.isic-archive.com/data/#2018

Tschandl et al. (2018). The HAM10000 dataset, a large collection of multi-source dermatoscopic images of common pigmented skin lesions. Scientific Data


Licencia

MIT

Sources

1 source
Hugging FacePrimaryVersion 636cae706dcf27dbede898f8133c818588efc772
huggingface.co/Jesusrodriguezf90/efficientnet-b0-isic2018-classification/tree/636cae706dcf27dbede898f8133c818588efc772

Verified Sep 28

Model artifacts

1 artifact

best_efficientnet_b0.pth

pth · 15.6 MB · SHA-256 71f257139af7…f7fb · Hugging Face

Download

Source excerpts

2 excerpts

--- language: - en license: mit tags: - pytorch - classification - medical-imaging - skin-lesion - efficientnet - efficientnet-b0 - isic2018 - dermatology - transfer-learning - fine-tuning datasets: - isic-2018 base_model: - timm/efficientnet_b0.ra_in1k metrics: - f1 - roc_auc pipeline_tag: image-classification library_name: pytorch --- # EfficientNet-B0 — Clasificación de Lesiones Cutáneas ISIC 2018 Modelo de clasificación multiclase de lesiones cutáneas dermoscópicas entrenado sobre HAM10000 (ISIC 2018 Task 3) mediante fine-tuning progresivo. Segunda etapa del pipeline de análisis de lesiones cutáneas — clasifica la región segmentada por U-Net en 7 categorías clínicas. **Repositorio:** [skin-lesion-analysis](https://github.com/Jesusrodriguezf90/skin-lesion-analysis) **Modelo de segmentación (primera etapa):** [unet-resnet34-isic2018-segmentation](https://huggingface.co/Jesusrodriguezf90/unet-resnet34-isic2018-segmentation) --- ## Métricas | Métrica | Valor | |---|---| | F1 macro (val) | **0.7700** | | F1 weighted (val) | **0.7877** | | AUC macro (val) | **0.9719** | | Accuracy (val) | **0.77** | > Split 80/20 estratificado sobre HAM10000 (10.015 imágenes). 8.012 imágenes de entrenamiento, 2.003 de validación. ### Métricas por clase | Clase | Precision | Recall | F1 | Soporte | |---|---|---|---|---| | MEL — Melanoma | 0.40 | 0.82 | 0.54 | 223 | | NV — Melanocytic nevus | 0.98 | 0.73 | 0.84 | 1341 | | BCC — Basal cell carcinoma | 0.77 | 0.92 | 0.84 | 103 | | AKIEC — Actinic keratosis | 0.71 | 0.74 | 0.72 | 65 | | BKL — Benign keratosis | 0.62 | 0.82 | 0.71 | 220 | | DF — Dermatofibroma | 0.81 | 0.91 | 0.86 | 23 | | VASC — Vascular lesion | 0.82 | 0.96 | 0.89 | 28 | > **Nota sobre MEL:** precision 0.40 con recall 0.82 indica que el modelo genera falsos positivos de melanoma. En contexto clínico este comportamiento es aceptable — mejor sobrediagnosticar que infradiagnosticar — pero refleja la dificultad intrínseca de distinguir melanoma de nevus en imágenes ambiguas del dataset. --- ## Uso ```python import torch import timm import albumentations as A from albumentations.pytorch import ToTensorV2 from huggingface_hub import hf_hub_download import numpy as np from PIL import Image CLASES = ["MEL", "NV", "BCC", "AKIEC", "BKL", "DF", "VASC"] # 1. Descargar el checkpoint ruta = hf_hub_download( repo_id="Jesusrodriguezf90/efficientn...

Source context: 0 downloads · 0 likes · Pipeline image-classification · Library pytorch · Repo Jesusrodriguezf90/efficientnet-b0-isic2018-classification