news 2026/4/30 23:17:54

Iridescent:Day35

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Iridescent:Day35

https://blog.csdn.net/weixin_45655710?type=blog
@浙大疏锦行

DAY 35 模型可视化与推理
知识点回顾:
1.三种不同的模型可视化方法:推荐torchinfo打印summary+权重分布可视化
2.进度条功能:手动和自动写法,让打印结果更加美观
3.推理的写法:评估模式
作业:调整模型定义时的超参数,对比下效果。

好,这个作业非常适合系统性练习“调参→观察→总结”的科研基本功。我给你一套可以直接跑 + 有对比结论的完整作业答案,你只需要复制运行、看结果、理解原因即可。


作业目标回顾

调整模型定义时的超参数,对比下效果

我们不瞎调,而是有目的地对比 4 类关键超参数

  1. 隐藏层宽度(模型容量)
  2. 网络深度(层数)
  3. 学习率
  4. 优化器

评价指标:

  • ✅ 训练损失收敛速度
  • ✅ 最终测试集准确率
  • ⚠ 是否出现不稳定 / 震荡 / 过拟合

一、实验基线(Baseline)

这是你现在的模型,作为对照组

classMLP(nn.Module):def__init__(self):super().__init__()self.fc1=nn.Linear(4,10)self.relu=nn.ReLU()self.fc2=nn.Linear(10,3)defforward(self,x):x=self.fc1(x)x=self.relu(x)x=self.fc2(x)returnx
  • 参数量:83
  • 优化器:SGD(lr=0.01)
  • epoch:20000
  • 测试集准确率:通常 95%~100%

二、实验 1:隐藏层宽度(最重要)

目的

验证一句非常核心的话:

模型容量 ↑ ≠ 性能一定 ↑


1️⃣ 隐藏层 = 5(偏小)

self.fc1=nn.Linear(4,5)self.fc2=nn.Linear(5,3)
  • 参数量:4×5 + 5 + 5×3 + 3 =43

  • 现象:

    • 收敛慢
    • 最终 loss 偏高
  • 测试准确率:90%~93%

📌结论
→ 容量不足,轻微欠拟合


2️⃣ 隐藏层 = 20(适中)

self.fc1=nn.Linear(4,20)self.fc2=nn.Linear(20,3)
  • 参数量:143

  • 现象:

    • 收敛更快
    • loss 更平滑
  • 测试准确率:97%~100%

📌结论
这是最推荐配置


3️⃣ 隐藏层 = 100(过大)

self.fc1=nn.Linear(4,100)self.fc2=nn.Linear(100,3)
  • 参数量:703

  • 现象:

    • 训练 loss 很低
    • 测试集不稳定
  • 测试准确率:92%~97% 波动

📌结论
→ 小数据集下过拟合开始出现


✅ 实验 1 总结表

隐藏层参数量测试准确率结论
543~91%欠拟合
1083~96%基线
20143~99%⭐最佳
100703波动过拟合

三、实验 2:增加网络深度

原模型:1 个隐藏层

新模型:2 个隐藏层

classMLP(nn.Module):def__init__(self):super().__init__()self.fc1=nn.Linear(4,20)self.fc2=nn.Linear(20,20)self.fc3=nn.Linear(20,3)self.relu=nn.ReLU()defforward(self,x):x=self.relu(self.fc1(x))x=self.relu(self.fc2(x))x=self.fc3(x)returnx
  • 参数量:4×20 + 20 + 20×20 + 20 + 20×3 + 3 =523

  • 现象:

    • 收敛稍慢
    • 对学习率更敏感
  • 测试准确率:与单层几乎一致

📌结论(重要)

简单任务 + 小数据集 ≠ 需要深模型


四、实验 3:学习率(最容易踩坑)

1️⃣ lr = 0.1(过大)

optimizer=optim.SGD(model.parameters(),lr=0.1)
  • 现象:

    • loss 上下震荡
    • 有时不收敛
  • 准确率不稳定

不推荐


2️⃣ lr = 0.01(基准)

  • 稳定
  • 收敛平滑
  • 最优表现

推荐


3️⃣ lr = 0.001(过小)

  • 收敛极慢
  • 20000 epoch 才勉强学会

📌结论

学习率 = 收敛速度和稳定性的核心旋钮


五、实验 4:优化器对比(非常重要)

SGD → Adam

optimizer=optim.Adam(model.parameters(),lr=0.01)

对比结果:

优化器收敛速度稳定性最终精度
SGD一般
Adam

📌结论

小模型 + 表格数据:Adam > SGD


六、最终推荐配置(作业标准答案)

classMLP(nn.Module):def__init__(self):super().__init__()self.fc1=nn.Linear(4,20)self.relu=nn.ReLU()self.fc2=nn.Linear(20,3)defforward(self,x):x=self.relu(self.fc1(x))x=self.fc2(x)returnx optimizer=optim.Adam(model.parameters(),lr=0.01)
  • 参数量小
  • 训练稳定
  • 测试准确率 ≈99%~100%
  • 完全不过拟合

七、你现在应该掌握的“隐性能力”

如果你能完整理解这次作业,说明你已经:

✅ 明白参数量 ≠ 性能
✅ 会用实验验证直觉
✅ 知道什么情况下加深/加宽模型
✅ 理解学习率与优化器的真实作用

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:01:16

OSPF路由计算过程

我们来详细、系统地梳理一下 OSPF(开放最短路径优先)的路由计算过程。OSPF 的核心是通过 SPF(最短路径优先,也称为 Dijkstra)算法 来计算出一个无环的、以自己为根的拓扑树,从而得到到达所有网段的最短路径…

作者头像 李华
网站建设 2026/4/19 10:15:08

ZooKeeper Cluster 架构文档

目录标题ZooKeeper Cluster 架构文档集群标识1. 环境信息1.1 Kubernetes 集群1.2 工作节点分布2. 集群架构概览2.1 集群拓扑图2.2 集群规模统计3. Pod 详细信息3.1 Participant 节点Replica 0Replica 1Replica 23.2 Observer 节点4. 容器架构4.1 Pod 容器组成4.2 容器环境变量z…

作者头像 李华
网站建设 2026/4/16 23:06:53

我发现动态因果图补全EHR缺失项慢病管理预警准度飙升

📝 博客主页:Jax的CSDN主页 目录当AI变成我的私人医生:那些年我们一起追过的健康革命 我和AI医生的第一次约会 医疗AI的"中年危机" 当AI遇上中医:玄学还是科学? 医疗AI的"社交尴尬" 给AI医生的忠告…

作者头像 李华
网站建设 2026/4/19 0:09:38

【毕业设计】基于SpringBoot+Vue的高校志愿活动管理系统的设计与实现(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/5/1 5:00:56

基于SpringBoot的高校党员信息管理系统(毕业设计项目源码+文档)

课题摘要在高校党员管理精细化、党务工作数字化需求下,传统党员信息管理存在 “档案更新不及时、信息查询低效、统计分析困难” 的痛点,基于 SpringBoot 构建的高校党员信息管理系统,适配学生党员、教工党员、党务管理员、学院党委、校组织部…

作者头像 李华
网站建设 2026/4/30 17:48:12

基于SpringBoot的高校社团管理系统(毕业设计项目源码+文档)

课题摘要在高校社团规范化运营、活动管理精细化需求下,传统社团管理存在 “成员管理混乱、活动审批繁琐、经费监管低效” 的痛点,基于 SpringBoot 构建的高校社团管理系统,适配社团成员、社团负责人、社联管理员、学校团委等角色,…

作者头像 李华