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

python打卡day37

@疏锦行

知识点回顾:

1.  过拟合的判断:测试集和训练集同步打印指标

2.  模型的保存和加载

a.  仅保存权重

b.  保存权重和模型

c.  保存全部信息checkpoint,还包含训练状态

3.  早停策略

作业:对信贷数据集训练后保存权重,加载权重后继续训练50轮,并采取早停策略

# 保存模型权重
torch.save(model.state_dict(), 'credit_model_weights.pth')# 加载模型权重
model.load_state_dict(torch.load('credit_model_weights.pth'))# 设置继续训练的轮数
additional_epochs = 50for epoch in range(additional_epochs):# 前向传播outputs = model(X_train_tensor)loss = criterion(outputs, y_train_tensor)# 反向传播和优化optimizer.zero_grad()loss.backward()optimizer.step()if (epoch + 1) % 10 == 0:print(f'Epoch [{epoch+1}/{additional_epochs}], Loss: {loss.item():.4f}')# 保存继续训练后的模型权重
torch.save(model.state_dict(), 'credit_model_weights_continued.pth')
# 早停策略参数
patience = 10  # 容忍验证集损失不下降的最大轮数
best_val_loss = float('inf')
counter = 0for epoch in range(num_epochs):# 训练代码model.train()outputs = model(X_train_tensor)train_loss = criterion(outputs, y_train_tensor)optimizer.zero_grad()train_loss.backward()optimizer.step()# 验证代码model.eval()with torch.no_grad():val_outputs = model(X_val_tensor)val_loss = criterion(val_outputs, y_val_tensor)print(f'Epoch [{epoch+1}/{num_epochs}], Train Loss: {train_loss.item():.4f}, Val Loss: {val_loss.item():.4f}')# 早停策略逻辑if val_loss < best_val_loss:best_val_loss = val_losscounter = 0# 保存最佳模型权重torch.save(model.state_dict(), 'best_credit_model_weights.pth')else:counter += 1if counter >= patience:print('Early stopping!')break

http://www.lqws.cn/news/460909.html

相关文章:

  • 银行账户管理系统-交互系统
  • 考研英语作文评分标准专业批改
  • C++ 学习笔记精要(二)
  • RPC常见问题回答
  • Cargo 与 Rust 项目
  • 让Agent的应用价值增长
  • 实验问题记录:PyTorch Tensor 也会出现 a = b 赋值后,修改 a 会影响 b 的情况
  • 博士,超28岁,出局!
  • 深入解析BERT:语言分类任务的革命性引擎
  • 3D Gaussian Splatting算法安装与实测
  • GO Gin Web框架面试题及参考答案
  • Android sdk 36沉浸式兼容性问题修复
  • 每天一个前端小知识 Day 7 - 现代前端工程化与构建工具体系
  • LeetCode 2942.查找包含给定字符的单词
  • P12894 [蓝桥杯 2025 国 Java B] 智能交通信号灯
  • 伸缩线充电宝推荐丨倍思灵动充45W突破移动界限!
  • 计算机——硬盘驱动器
  • 结构体解决冒泡排序
  • 多线程八股
  • 【Go语言基础】对齐边界与内存填充
  • 初学python的我开始Leetcode题10-2
  • Vuex(一) —— 集中式的状态管理仓库
  • AI 产品的“嵌点”(Embedded Touchpoints)
  • 如何落地你的AI创意
  • 一体三面:UEBA在数据分析、数据治理与数据安全中的应用洞察
  • 【Flink实战】 Flink SQL 中处理字符串 `‘NULL‘` 并转换为 `BIGINT`
  • 零基础入门PCB设计 一实践项目篇 第四章(STM32开发板PCB设计)
  • 破解数据可视化难题:带轴断裂的柱状图绘制全指南
  • Maven并行构建
  • IPv6 | 地址解析 / 地址管理 / 邻居发现协议(NDP)/ 无状态自动配置(SLAAC)