ONNX 模型库
返回模型

说明文档

MedConvNeXt: 优化的皮肤疾病分类模型

📌 简介

MedConvNeXt 是一个基于 ConvNeXt 的深度学习模型,使用 PyTorch Lightning 进行优化,专门用于皮肤疾病分类。该模型通过 Optuna 进行超参数调优,在多次训练迭代中提升性能。

📂 数据集

数据集包含各种皮肤疾病的图像,结构如下:

SkinDisease/
    train/
        class_1/
        class_2/
        ...
    test/
        class_1/
        class_2/
        ...

应用了 AutoAugment、水平翻转、旋转、颜色抖动和随机擦除 等数据增强技术来提高模型的泛化能力。

⚙️ 模型架构

  • 基础模型: ConvNeXt-Base(在 ImageNet 上预训练)
  • 优化器: AdamW 配合 CosineAnnealingLR 调度器
  • 损失函数: CrossEntropyLoss / Focal Loss(用于处理类别不平衡)
  • 评估指标: 准确率、精确率、召回率和 F1 分数
  • 超参数优化: Optuna(10 次试验,每次试验 5 个 epoch)

📊 训练过程

模型使用 PyTorch Lightning 进行训练,并自动记录到 TensorBoard 以实现实时监控。最佳超参数通过 Optuna 选择,最终模型训练了 23 个 epoch。

🚀 结果

以下是 TensorBoard 中的关键性能图表:

训练指标

  • 准确率和精确率通过超参数调优得到提升
  • 训练损失持续下降,表明模型收敛

🔗 如何使用

加载和使用模型:

import torch
from torchvision import transforms
from PIL import Image

# 加载模型
model = torch.jit.load("skinconvnext_scripted.pt")
model.eval()

# 定义图像变换
transform = transforms.Compose([
    transforms.Resize((224, 224)),
    transforms.ToTensor(),
    transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])

# 预测示例图像
image = Image.open("sample.jpg").convert("RGB")
image_tensor = transform(image).unsqueeze(0)
output = model(image_tensor)
predicted_class = torch.argmax(output, dim=1).item()
print("预测类别:", predicted_class)

📌 未来工作

  • 临床验证 - 在真实世界医学数据集上进行验证
  • 模型可解释性 - 通过 Grad-CAM 或 SHAP 实现
  • 部署优化 - 使用 ONNX 和 TensorRT

📝 许可证

本项目仅供研究和教育目的。如需临床使用,需要进一步验证。


Hugging Face Space: [https://huggingface.co/spaces/Eraly-ml/Skin-AI]

作者: [Eraly Gainulla]

我的 Telegram @eralyf

Eraly-ml/Skin-AI

作者 Eraly-ml

image-classification transformers
↓ 0 ♥ 0

创建时间: 2025-02-18 18:02:24+00:00

更新时间: 2025-05-07 17:50:15+00:00

在 Hugging Face 上查看

文件 (12)

.gitattributes
LICENSE
README.md
best_model.ckpt
events.out.tfevents.1741169569.7cdb82329e0b.31.0
hparams (11).yaml
labels.txt
plot.jpg
requirements.txt
skinconvnext.onnx ONNX
skinconvnext_final.pth
skinconvnext_scripted.pt