P4:猴痘病识别

前言
猴痘(Mpox)是由猴痘病毒(Monkeypox virus, MPXV)引起的一种人畜共患传染病,其临床表现与天花相似,包括发热、皮疹和淋巴结肿大等症状。自2022年以来,猴痘在全球范围内呈现多国暴发趋势,被世界卫生组织(WHO)列为国际关注的突发公共卫生事件(PHEIC)。传统的猴痘诊断主要依赖流行病学调查、临床症状观察以及实验室检测(如PCR和病毒分离),但这些方法存在检测周期长、对医疗资源依赖度高、基层医疗机构普及性不足等问题,尤其在疫情快速扩散时可能延误早期诊断与隔离治疗。
近年来,随着深度学习技术的快速发展,基于医学图像的智能辅助诊断系统在皮肤病识别领域展现出显著潜力。卷积神经网络(CNN)能够从皮肤病变图像中自动提取多层次特征,实现快速、非侵入式的初步筛查,为猴痘的早期识别提供了新的技术路径。

实验概述

实验目标

  1. 训练过程中保存效果最好的模型参数。
  2. 加载最佳模型参数识别本地的一张图片。
  3. 调整网络结构使测试集accuracy到达88%

实验重点

通过调整网络结构,实现猴痘病图像的精准分类,使测试集准确率达到 88% 以上。
自定义深层CNN:输入 (3, H, W) → 4层卷积 → 全局平均池化 → 展平 → 全连接分类
在这里插入图片描述
训练集accuracy达到88%
在这里插入图片描述
在这里插入图片描述

我的环境

● 语言环境:Python3.8
● 编译器:Jupyter Lab
● 深度学习环境:Pytorch

实现代码

一、前期准备

1.设置GPU

在这里插入图片描述

2.导入数据

pathlib.Path()函数:将字符串型文件路径转化为对象
glob()方法:获取路径对象下的所有文件夹路径
list():以列表形式存储
split()函数:将data_paths中每个文件路径进行切割,获取每个文件的名称
在这里插入图片描述
total_data.class_to_idx:存储数据集类别与对应数字索引。
在PyTorch的ImageFolder数据加载器中,根据数据集文件夹的组织结构,每个文件夹代表一个类别,class_to_idx字典将每个类别名称映射为一个数字索引。
在这里插入图片描述

3.划分数据集

torch.utils.data.DataLoader():允许小批次迭代数据集
在这里插入图片描述

二、模型构建

构建简单的CNN网络
在这里插入图片描述

三、训练模型

1.设置超参数

在这里插入图片描述

2.编写训练函数

在这里插入图片描述

3.编写测试函数

测试函数和训练函数大致相同,但是由于不进行梯度下降对网络权重进行更新,所以不需要传入优化器
在这里插入图片描述

4.正式训练

在这里插入图片描述

四、结果可视化

1.Loss与Accuracy图

在这里插入图片描述

2.指定图片进行预测

torch.squeeze():对数据的维度进行压缩,去掉维数为1的的维度
torch.unsqueeze():对数据维度进行扩充,给指定位置加上维数为一的维度
在这里插入图片描述

五、保存并加载模型

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值