返回模型
说明文档
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