news 2026/4/16 15:43:07

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/4/16 14:31:49

Arbess从基础到实践(27) - 集成soular,使用soular用户统一认证登录

Arbess 是一款开源免费的 CI/CD 工具&#xff0c;支持免费私有化部署&#xff0c;轻量、简洁易用。本文将详细介绍如何安装Arbesssoular&#xff0c;实现统一认证登录。 1、soular 安装 1.1 安装 本文以CentOS操作系统为例。 下载&#xff0c;CentOS安装包下载地址&#xf…

作者头像 李华
网站建设 2026/4/16 12:44:02

GMSSL:国密算法SM2、SM3、SM4的高效实现

GMSSL是一个支持国家密码算法&#xff08;国密算法&#xff09;的开源密码工具库。GMSSL提供了与OpenSSL类似的功能&#xff0c;主要包括&#xff1a;国密算法实现&#xff08;SM2/SM3/SM4等&#xff09;&#xff1b;证书管理&#xff08;支持国密标准证书格式&#xff09;&…

作者头像 李华
网站建设 2026/4/16 11:11:41

08_软考_法律法规与标准化

知识产权基础知识 保护期限知识产权人的确定侵权判定其他法律细则标准化基础知识 标准的分类标准的编号

作者头像 李华
网站建设 2026/4/16 0:28:26

AI原生应用:开启视频生成新时代

AI原生应用:开启视频生成新时代 关键词:AI原生应用、视频生成、人工智能、深度学习、生成模型、应用场景、未来趋势 摘要:本文深入探讨AI原生应用如何开启视频生成的新时代。通过介绍相关核心概念,阐述核心算法原理及操作步骤,展示项目实战案例,分析实际应用场景,推荐工…

作者头像 李华
网站建设 2026/4/16 0:32:17

9 个高效降AI率工具,继续教育学生必备!

9 个高效降AI率工具&#xff0c;继续教育学生必备&#xff01; AI降重工具&#xff1a;高效降低AIGC率&#xff0c;让论文更自然 在当前学术写作中&#xff0c;随着AI技术的广泛应用&#xff0c;越来越多的学生和研究人员发现&#xff0c;使用AI生成的内容容易被查重系统识别为…

作者头像 李华
网站建设 2026/4/16 13:37:12

克隆大型仓库卡住(7%每次就卡住了)

克隆到7%就卡住&#xff0c;核心是大文件传输时网络链路不稳定&#xff08;SSH 连接因长时间低速率传输被远端/防火墙掐断&#xff09;&#xff0c;且单纯增大缓冲区效果有限&#xff0c;需要针对性优化「传输策略」和「连接保活」&#xff0c;以下是按优先级排序的解决方法&am…

作者头像 李华