type
status
date
slug
summary
tags
category
icon
password

一、实验目的:

基于华为自研MindSpore深度学习框架构建网络模型,实现图像识别(分类)相关任务。
 

二、实验内容:

将实验文档中的代码正确运行。
(1)使用notebook环境运行(P3——P8);
(2)使用pycharm pro远程调用华为云上的解释器来运行;(P9——P15)
(3)实验进阶操作(P16——P22)
1.修改训练集和测试集的划分比例,观察在不同比例下模型性能(测试性
能)的变化,并绘制折线图(可使用python画,也可以用excel作图)。
2.修改batch_size、weight_decay、lr、dropout_ratio,观察不同超参数对
于实验结果的影响(每次只修改一个超参数并保持其它参数不变)。
3.保持其它设置不变,尝试多种epoch_size,观察不同值对训练过程的影
响;是否有欠拟合、过拟合等现象发生。(提示:观察训练、测试性能。)
4.尝试在conv3和conv4之间添加一个conv和pooling层,观察实验结果的变化。(提示:需要在__init__和construct两个方法中添加代码)
要求:对运行结果、关键设置等能反映你自己工作的内容进行截图,配上必要的说明文字,放入实验报告。
 

三、实验环境:

  1. MindSpore2.1
  1. ModelArts平台
  1. PyCharm 2024.1.1(专业版)
 

四、实验详细实现过程

1.实验环境搭建

1.创建notebook环境
notion image
 
2.启动notebook
notion image
notion image

 

2.在notebook上进行花卉实验操作

notion image
notion image
notion image
notion image
notion image
notion image

 

3.报错警告问题的解决

1. 'RandomCropDecodeResize' 废弃警告;'HWC2CHW' 废弃警告
notion image
2.文件自动生成路径报错
notion image
notion image

 

4.使用pycharm pro远程调用华为云上的解释器来运行

1.配置SSH
notion image
notion image
notion image
  1. 获取开发环境预置虚拟环境路径
    1. notion image
      notion image
  1. 配置云上Python Interpreter
    1. notion image
      notion image
      notion image
      这里发现mindapore环境没有激活,所以出现问题,我退出重新激活后使用路径即可成功配置解释器。
      notion image
      解释器更新问题:
      notion image
      这个时候清除索引缓存或者重启IDE有效

 

5.实验进阶要求

1.修改训练集和测试集的划分比例,观察在不同比例下模型性能(测试性能)的变化,并绘制折线图。
 
2.修改batch_size、weight_decay、lr、dropout_ratio,观察不同超参数对实验结果的影响(每次只修改一个超参数并保持其它参数不变)。
为了便于训练比较,我将训练集训练次数改为100,并保留初始结果进行比对。
notion image
·将batch_size由32改为64:训练速度明显变慢,step变小一半,loss差异不大,acc变小,但sample的预测结果仍旧均正确
batch_size: 每次迭代时处理的数据样本数。较大的batch size可以加速训练过程,因为并行处理的效率更高,但也可能导致内存消耗大且可能收敛到较宽的局部最小值。较小的batch size会使训练过程更加随机,有助于探索更多解空间,但训练时间更长。
notion image
notion image
·将weight_decay由0.01改为0.05:step不变,loss变化不大,acc略有变小,但sample的预测结果仍旧均正确
weight_decay: L2正则化项的系数,用于防止模型过拟合。增加该值会加大对权重的惩罚,有助于简化模型,减少过拟合风险,但过度增加可能会导致欠拟合。
notion image
notion image
·将lr由0.0001改为0.001:step不变,loss变大,acc明显变小,且sample的预测结果出现一项错误,此时模型效率明显变低
lr (学习率): 决定模型参数更新的速度。较高的学习率可以使训练快速收敛,但也可能跳过最优解;较低的学习率有助于细致调整,但可能导致训练过程缓慢甚至陷入局部最小值。
据分析,较高的学习率导致模型跳过了部分最优解,造成模型准确率明显变低
notion image
notion image
·将dropout_ratio由0.5改为0.9:训练速度变慢,step不变,loss变化不大,acc略有降低,但sample的预测结果仍旧均正确
dropout_ratio: Dropout层的比例,用于防止过拟合。增加此比例会随机“丢弃”更多神经元输出,增强模型的泛化能力,但过高可能导致模型学习不足。
notion image
notion image
 
3.保持其它设置不变,尝试多种epoch_size,观察不同值对训练过程的影响;是否有欠拟合、过拟合等现象发生。(提示:观察训练、测试性能。)
· epoch_size = 100,训练速度较快,但是准确度下降,不过不至于到欠拟合
notion image
· epoch_size = 400,训练速度较高且准确率非常高
notion image
· epoch_size = 800,训练时间非常久,且大概从500起loss都一直非常低,准确率虽然变高,但明显为过拟合
notion image
欠拟合(Underfitting)
Loss:在训练集上,如果模型的损失函数值一直较高,即使经过多轮迭代也没有明显下降,这可能表明模型无法充分捕捉数据中的模式,即存在欠拟合。
Accuracy:对于分类任务,如果模型在训练集上的准确率较低,并且随训练几乎无明显提升,说明模型可能过于简单,不能很好地拟合数据,也是欠拟合的表现。
过拟合(Overfitting)
Loss:在训练初期,训练集和验证集的损失都会下降。但若训练集的损失继续显著下降,而验证集的损失开始上升(形成一个U形或高原状),这通常是过拟合的迹象。模型在训练数据上学习到了不必要的细节和噪声,导致其泛化能力减弱。
Accuracy:对于分类任务,如果模型在训练集上的准确率极高,接近或达到100%,但在验证集上的准确率远低于训练集,且可能还有下降趋势,这强烈暗示着模型出现了过拟合。
 
4.尝试在conv3和conv4之间添加一个conv和pooling层,观察实验结果的变化。(提示:需要在__init__和construct两个方法中添加代码)
·增加conv,通道必须为128,128才能进行,修改使用1x1的卷积核,经查询,这种设置虽然不改变特征图的空间尺寸,但可以用于调整通道间的信息,常用于特征维度的降维或升维(这里由于通道数不变,主要起特征重校准作用)
notion image
·增加一个平均池层pooling,进行平均池化降采样
notion image
·修改construct,将新修改的两层加入到模型中使其生效
根据要求,在conv3和conv4之间添加一个conv和pooling层,其中这两者之间我通过激活函数是用来给网络引入非线性,通过在每一层之后添加ReLU激活函数,网络能够学习更复杂的函数映射,从而更好地处理非线性问题,有助于提升模型的表达能力和训练效率。
notion image
·观测训练结果变化:发现报错,是特征图尺寸设置的问题
notion image
·修改特征图尺寸,将pooling尺寸修改为不变
notion image
notion image
Python大作业——招聘信息数据可视化图解TCP/IP阅读解疑
Loading...
Koreyoshi
Koreyoshi
一个无可救药的乐观主义者
Latest posts
软件测试:集成测试
2025-3-25
软件测试:控制流测试
2025-3-25
软件测试:系统测试
2025-3-25
软件测试:数据流测试
2025-3-25
软件测试:测试驱动开发
2025-3-25
软件工程:面向对象的概念和记号
2025-3-24
Announcement
🎉写给自己的2025心愿🎉
保研
国奖
完善博客
学一门乐器
发表一篇论文
拍摄人生照片
去3个城市旅游
专业课知识视频
拍摄毕业季视频
----- 2025 ------
👏希望我们一起变好👏