Views
No views yet
efficientnet_b0 (timm, ImageNet-pretrained)pos_weightthresholds.json)tiswan14/acne-dataset-image plus
project-specific annotations.| Metric | Value |
|---|---|
| Subset (exact-match) accuracy | 0.9798 |
| Label-wise accuracy | 0.9951 |
| Macro F1 | 0.9889 |
| Micro F1 | 0.9877 |
| Macro ROC-AUC | 0.9993 |
| Macro Average Precision | 0.9978 |
| Class | Support | Precision | Recall | F1 | ROC-AUC |
|---|---|---|---|---|---|
| Whitehead | 45 | 1.000 | 1.000 | 1.000 | 1.000 |
| Blackhead | 186 | 1.000 | 0.995 | 0.997 | 1.000 |
| Papule | 155 | 0.987 | 0.955 | 0.971 | 0.998 |
| Pustule | 151 | 0.974 | 0.980 | 0.977 | 0.998 |
| Nodule | 156 | 1.000 | 1.000 | 1.000 | 1.000 |
1import torch, timm, numpy as np, cv2
2from huggingface_hub import hf_hub_download
3
4ckpt_path = hf_hub_download("charuka0/acne-multilabel-classifier", "best_model.pth")
5ckpt = torch.load(ckpt_path, map_location="cpu", weights_only=False)
6
7model = timm.create_model(ckpt["backbone"], pretrained=False, num_classes=5)
8model.load_state_dict(ckpt["model_state_dict"]); model.eval()
9
10img = cv2.cvtColor(cv2.imread("face.jpg"), cv2.COLOR_BGR2RGB)
11img = cv2.resize(img, (ckpt["img_size"], ckpt["img_size"])) / 255.0
12img = (img - [0.485, 0.456, 0.406]) / [0.229, 0.224, 0.225]
13x = torch.tensor(img).permute(2, 0, 1).unsqueeze(0).float()
14
15probs = torch.sigmoid(model(x))[0].detach().numpy()
16present = probs >= np.array(ckpt["thresholds"])
17print(dict(zip(ckpt["classes"], zip(probs.round(3), present))))