news 2026/8/14 23:04:33

day41早停策略和模型权重的保存@浙大疏锦行

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
day41早停策略和模型权重的保存@浙大疏锦行

day41早停策略和模型权重的保存@浙大疏锦行

基于day40代码实现模型权重的保存和早停

# 定义损失函数和优化器criterion=nn.CrossEntropyLoss()optimizer=optim.Adam(model.parameters(),lr=0.001)# 训练参数num_epochs=1000check_interval=10# 每多少轮检查一次验证集# 记录列表train_losses=[]test_losses=[]epochs_rec=[]# ===== 早停策略参数 =====best_test_loss=float('inf')patience=20# 容忍多少次验证集loss不下降 (20 * 10 = 200 epochs)counter=0early_stopped=Falsebest_model_path='best_credit_model.pth'# ======================start_time=time.time()# 使用tqdm显示进度条withtqdm(total=num_epochs,desc="训练进度",unit="epoch")aspbar:forepochinrange(num_epochs):model.train()# 前向传播outputs=model(X_train)loss=criterion(outputs,y_train)# 反向传播和优化optimizer.zero_grad()loss.backward()optimizer.step()# 定期评估和检查早停if(epoch+1)%check_interval==0:model.eval()withtorch.no_grad():test_outputs=model(X_test)test_loss=criterion(test_outputs,y_test)model.train()# 记录train_losses.append(loss.item())test_losses.append(test_loss.item())epochs_rec.append(epoch+1)pbar.set_postfix({'Train Loss':f'{loss.item():.4f}','Test Loss':f'{test_loss.item():.4f}','Best':f'{best_test_loss:.4f}','Patience':f'{counter}/{patience}'})# ===== 早停逻辑 =====iftest_loss.item()<best_test_loss:best_test_loss=test_loss.item()counter=0# 保存最佳模型权重torch.save(model.state_dict(),best_model_path)else:counter+=1ifcounter>=patience:print(f"\n早停触发!在第{epoch+1}轮停止训练。")print(f"最佳测试集损失:{best_test_loss:.4f}")early_stopped=Truebreak# ===================pbar.update(1)print(f"训练耗时:{time.time()-start_time:.2f}秒")# 绘制损失曲线plt.figure(figsize=(10,6))plt.plot(epochs_rec,train_losses,label='Train Loss')plt.plot(epochs_rec,test_losses,label='Test Loss')plt.title('Training and Test Loss (with Early Stopping)')plt.xlabel('Epoch')plt.ylabel('Loss')plt.legend()plt.grid(True)plt.show()

训练进度: 31% 309/1000 [00:01<00:02, 292.95epoch/s, Train Loss=0.4183, Test Loss=0.4887, Best=0.4769, Patience=19/20]

早停触发!在第 310 轮停止训练。 最佳测试集损失: 0.4769 训练耗时: 1.06 秒

# 模型评估 - 加载最佳模型print("\n--- 加载最佳模型进行评估 ---")ifos.path.exists(best_model_path):# 重新初始化模型结构best_model=CreditModel(input_dim).to(device)# 加载权重best_model.load_state_dict(torch.load(best_model_path))best_model.eval()withtorch.no_grad():outputs=best_model(X_test)_,predicted=torch.max(outputs.data,1)total=y_test.size(0)correct=(predicted==y_test).sum().item()accuracy=100*correct/totalprint(f'最佳模型测试集准确率:{accuracy:.2f}%')# 简单的推理示例print("\n--- 推理示例 ---")print(f"真实标签:{y_test[:10].cpu().numpy()}")print(f"预测标签:{predicted[:10].cpu().numpy()}")else:print("未找到保存的模型文件。")


@浙大疏锦行

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

扭蛋机小程序开发制作!

扭蛋机便是盲盒的另一种形式&#xff0c;目前国内消费市场主要集中在互联网上&#xff0c;玩家在手机上就可以体验抽盲盒的乐趣&#xff0c;因此线上盲盒扭蛋机小程序的出现也是顺应市场发展。扭蛋机里面的盲盒商品一般是手办等&#xff0c;盲盒种类繁多&#xff0c;玩家可以抽…

作者头像 李华
网站建设 2026/8/14 9:05:50

英文论文写作工具推荐:8大AI+翻译润色排名+

英文论文写作工具推荐&#xff1a;8大AI翻译润色排名 &#xfffd;&#xfffd; 8款英文论文AI写作工具核心对比 工具名称 核心功能 处理速度 适合场景 独特优势 aibiye 降AIGC率查重 20分钟 学术论文优化 适配知网/维普检测规则 aicheck AIGC检测降重 20分钟 AI…

作者头像 李华
网站建设 2026/8/14 17:45:49

免费论文生成工具排名:8大网站+无水印下载推荐

免费论文生成工具排名&#xff1a;8大网站无水印下载推荐 核心工具对比速览 工具名称 核心功能 处理速度 适用场景 特色优势 aibiye AI论文生成降重 15-30分钟 初稿快速生成 学术术语精准匹配 aicheck AIGC检测降AI率 20分钟 论文合规性优化 知网/维普规则适配 …

作者头像 李华
网站建设 2026/8/14 5:17:30

XSS(跨站脚本攻击)

XSS&#xff08;跨站脚本攻击&#xff09; 什么是XSS&#xff1f; XSS&#xff08;Cross-Site Scripting&#xff09; 是一种Web安全漏洞&#xff0c;攻击者将恶意脚本注入到其他用户会访问的网页中。 当用户浏览被感染的网页时&#xff0c;恶意脚本会在用户浏览器中执行&…

作者头像 李华
网站建设 2026/8/14 2:39:59

强制式双卧轴搅拌机:型号谱系、核心参数与性能深度剖析!

在混凝土工程领域&#xff0c;强制式双卧轴搅拌机凭借其高效、均匀的搅拌性能&#xff0c;已成为商混站、预制构件厂及大型基建项目的核心设备。小编从行业标准出发&#xff0c;结合工程实践数据&#xff0c;系统梳理双卧轴搅拌机的型号分类、关键参数及性能优化方向&#xff0…

作者头像 李华