当前位置: 首页 > news >正文

python打卡day35@浙大疏锦行

知识点回顾:

  1. 三种不同的模型可视化方法:推荐torchinfo打印summary+权重分布可视化
  2. 进度条功能:手动和自动写法,让打印结果更加美观
  3. 推理的写法:评估模式

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

 1. 模型可视化方法

①使用torchinfo打印summary

from torchinfo import summarymodel = SimpleNN()
summary(model, input_size=(1, 784))  # 输入尺寸

②权重分布可视化

import matplotlib.pyplot as plt# 可视化第一层权重
plt.hist(model.fc1.weight.data.numpy().flatten(), bins=50)
plt.title('FC1 Weight Distribution')
plt.show()

 2. 进度条功能

①手动写法

from tqdm import tqdmfor epoch in range(10):with tqdm(train_loader, desc=f'Epoch {epoch}') as pbar:for data, target in pbar:# ...训练代码...pbar.set_postfix(loss=loss.item())

②自动写法

from torch.utils.tensorboard import SummaryWriterwriter = SummaryWriter()
for epoch in range(10):for i, (data, target) in enumerate(train_loader):# ...训练代码...writer.add_scalar('Loss/train', loss.item(), epoch*len(train_loader)+i)

③推理写法

model.eval()  # 切换到评估模式
with torch.no_grad():  # 禁用梯度计算correct = 0for data, target in test_loader:output = model(data)pred = output.argmax(dim=1)correct += (pred == target).sum().item()accuracy = correct / len(test_loader.dataset)print(f'Test Accuracy: {accuracy:.2%}')

 作业:超参数调整对比

1.模型定义示例(带超参数)

class SimpleNN(nn.Module):def __init__(self, hidden_size=128, dropout_rate=0.2):super(SimpleNN, self).__init__()self.fc1 = nn.Linear(784, hidden_size)self.dropout = nn.Dropout(dropout_rate)self.fc2 = nn.Linear(hidden_size, 10)def forward(self, x):x = x.view(-1, 784)x = F.relu(self.fc1(x))x = self.dropout(x)x = self.fc2(x)return x

2.超参数对比实验

hidden_sizes = [64, 128, 256]
dropout_rates = [0.0, 0.2, 0.5]for h_size in hidden_sizes:for d_rate in dropout_rates:model = SimpleNN(hidden_size=h_size, dropout_rate=d_rate)# ...训练和评估代码...print(f'Hidden: {h_size}, Dropout: {d_rate}, Acc: {accuracy:.2%}')

关键点:

1. 评估时一定要用 model.eval() 和 torch.no_grad()
2. 进度条推荐使用tqdm或tensorboard
3. 超参数调整要系统性地对比(如网格搜索)
4. 可视化有助于理解模型行为

相关文章:

  • ping命令常用参数以及traceout命令
  • Cookie 与 Session
  • 25. 日志装饰器的开发
  • springboot 多模块,打包为一个jar包
  • 细胞冻存的注意事项,细胞冻存试剂有哪些品牌推荐
  • day25JS- es5面向对象、Proxy代理对象
  • 【大模型报错解决】cublasLt ran into an error!
  • CSS定位详解:掌握布局的核心技术
  • Panasonic Programming Contest 2025(AtCoder Beginner Contest 406)D-E 题解
  • 【Qt开发】进度条ProgressBar和日历Calendar Widget
  • 第十节第九部分:jdk8新特性:方法引用、特定类型的方法引用、构造器引用(不要求代码编写后同步简化代码,后期偶然发现能用这些知识简化即可)
  • Java中的String的常用方法用法总结
  • 【Java项目测试报告】:在线聊天平台(Online-Chat)
  • 2025年渗透测试面试题总结-匿名[社招]前端安全(题目+回答)
  • windows10重装ssh无法下载
  • 大模型推理 memory bandwidth bound (5) - Medusa
  • No such file or directory: ‘ffprobe‘
  • MongoDB 数据库迁移:完整指南与最佳实践
  • 行为型:模板方法模式
  • Linux--环境的搭建(云服务器)
  • 政务公开和网站建设工作问题/网络推广员的工作内容和步骤
  • 工作室 网站/百度极速版下载安装
  • 杭州知名app技术开发公司/网站优化排名的方法
  • 网站建设 2018/百度搜索推广收费标准
  • 网站改版提交给百度/青岛最新消息
  • wordpress网站速度慢/品牌整合营销