Pytorch猴痘病识别
- 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
- 🍖 原作者:K同学啊
电脑系统:Windows11
显卡型号:NVIDIA Quadro P620
语言环境:python 3.9.7
编译器:jupyter notebook
深度学习环境:2.17.0
一、前期准备
设定GPU
导入数据
划分数据集
二、构建简单的CNN网络
三、训练模型
编写测试函数
正式训练
四、结果可视化
Loss与Accuracy图
指定图片进行预测
五、保存
六、总结
一、前期准备
-
设置GPU
- 确保你有适当的环境配置以利用GPU(如CUDA和cuDNN)。
- 验证CUDA设备是否可用,以确保代码能够高效运行在GPU上。
-
导入数据
- 确保数据路径正确,且数据格式和内容符合预期。
- 处理任何缺失值或异常数值,以免影响模型训练。
- 考虑数据增强技术以增加训练样本的多样性,减少过拟合。
-
划分数据集
- 按照合理的比例划分数据集(如80%训练集,10%验证集,10%测试集)。
- 确保数据划分的随机性和多样性,避免样本偏差。
- 在划分后,检查各个数据集的标签分布,以确保均衡。
二、构建简单的CNN网络
- 确保模型架构合理,包含适当的卷积层、激活函数和池化层。
- 考虑使用正则化技术(如Dropout)减少过拟合。
- 了解Batch Normalization的用途,以及适合使用的位置。
三、训练模型
-
设置超参数
- 选择合适的学习率,使用学习率调度器以动态地调整学习率。
- 决定批量大小(Batch Size)时,要兼顾计算效率和内存消耗。
- 确定训练周期(Epochs),并考虑早停策略来防止过拟合。
-
编写训练函数
- 确保计算损失和梯度的方式正确。
- 实现训练过程中监控模型性能,以及保存最佳模型状态。
- 设计优雅的日志记录系统,以便轻松追踪训练过程中的参数。
-
编写测试函数
- 确保测试数据在测试阶段保持完全不见(unseen)以验证模型推广能力。
- 计算各类评估指标(如准确率、召回率等)以全面评估模型性能。
-
正式训练
- 使用训练集进行模型训练,定期在验证集上评估。
- 监控训练过程中的Loss和Accuracy变化,识别潜在过拟合情况。
- 保存定期检查点,以防中断训练导致的损失。
四、结果可视化
-
Loss与Accuracy图
- 使用可视化工具(如Matplotlib)绘制Loss与Accuracy曲线,以便可视化模型的收敛情况。
- 在图中标注关键点(如最佳训练轮次),方便于分析。
-
指定图片进行预测
- 确保预测函数简洁明了,包括对输入数据进行相应预处理。
- 结果的展示上,要提供清晰的标签和置信度,以帮助用户理解预测结果。
五、保存并加载模型
- 保存整个模型(结构和权重),确保可以在需要时进行加载。
- 关注模型的版本管理,确保对不同模型版本的清晰识别。
- 测试模型加载后是否正常工作,确保没有影响推理时的性能。