Files
2025-10-27 19:45:33 +08:00

4.2 KiB
Raw Permalink Blame History

更新日志 (Changelog)

[2.0.0] - 2025-10-27

新增功能

训练改进

  • 训练集/验证集划分: 自动划分80%训练集和20%验证集
  • 双Loss监控: 每个epoch同时显示训练Loss和验证Loss
  • 早停机制(Early Stopping): 验证Loss连续20轮不降则自动停止训练
  • 最佳模型保存: 自动保存验证Loss最低的模型,而非最后一轮
  • 智能训练: 最多训练500轮,但通常会在150-200轮触发早停

可视化功能

  • 训练曲线图: 自动生成 training_loss.png
    • 双曲线对比(训练Loss vs 验证Loss
    • 标记最佳模型的epoch位置
    • 提供完整曲线和后期收敛细节两个子图
    • 支持中文字体显示

诊断功能

  • 训练总结报告: 训练结束后自动输出
    • 总训练轮数
    • 最佳模型epoch
    • 最佳验证Loss
    • 最终训练Loss和验证Loss
    • 训练/验证Loss差异分析
  • 智能诊断: 自动判断模型状态
    • ✓ 良好:没有明显过拟合
    • ⚠ 尚可:有轻微过拟合倾向
    • ✗ 警告:可能存在过拟合

📝 文档更新

README.md

  • 更新训练流程说明,详细说明新增功能
  • 新增"如何判断模型训练效果好坏"FAQ
  • 新增"验证Loss远高于训练Loss"问题解答
  • 更新训练参数表格,包含早停和验证集信息
  • 更新性能基准数据
  • 标注版本号为2.0.0并列出更新内容

提示词文件

  • prompt_simple.txt: 更新训练脚本要求,包含验证集和早停
  • prompt_professional.txt: 详细补充所有新功能的实现要求
    • 验证集监控
    • 早停机制
    • 最佳模型保存
    • 训练可视化
    • 智能诊断
    • 更新成功标准和重要提示

🔧 代码优化

train_lstm.py

  • 代码从150行扩展到~330行(增加了大量功能但保持可读性)
  • 所有新增代码均有详细中文注释
  • 改进的训练循环:
    for epoch in range(500):  # 最多500轮
        # 训练阶段
        model.train()
        # ... 训练代码 ...
    
        # 验证阶段
        model.eval()
        with torch.no_grad():
            # ... 验证代码 ...
    
        # 早停检查
        if val_loss < best_val_loss:
            best_model_state = model.state_dict()
        else:
            patience_counter += 1
    
        if patience_counter >= patience:
            break  # 触发早停
    

📊 训练效果对比

v1.0.0(旧版本)

  • 固定训练100轮
  • 只有训练Loss
  • 无法判断过拟合
  • 可能保存次优模型
  • 训练时间:~15秒

v2.0.0(新版本)

  • 智能训练150-200轮(早停)
  • 训练Loss + 验证Loss
  • 自动检测过拟合
  • 保证保存最佳模型
  • 训练时间:~30秒
  • 新增训练曲线图
  • 新增诊断报告

🎯 教学价值提升

  1. 理解过拟合: 通过双Loss对比直观理解
  2. 学习早停: 了解工业界常用的训练技巧
  3. 模型评估: 学会判断模型质量的方法
  4. 可视化思维: 培养通过图表分析问题的能力
  5. 最佳实践: 掌握训练集/验证集划分的重要性

📦 新增文件

  • training_loss.png - 训练曲线图(自动生成)
  • CHANGELOG.md - 本更新日志

⚙️ 依赖变化

需要安装matplotlib用于绘图(可选):

pip install matplotlib

如果未安装matplotlib,程序会跳过绘图但不影响训练。

🐛 问题修复

  • 修复了可能保存次优模型的问题(现在保存验证Loss最低的模型)
  • 优化了文件路径处理,确保所有输出文件保存到脚本目录

🔮 未来计划

  • 添加TensorBoard支持
  • 支持学习率动态调整
  • 添加多模型对比功能
  • 支持分布式训练
  • 增加更多技术指标特征

[1.0.0] - 2025-10-27(初始版本)

基础功能

  • LSTM模型训练
  • CUDA GPU加速
  • MT5数据获取
  • ONNX模型导出
  • MQL5 EA交易
  • 基础文档

版本说明:

  • 主版本号:重大功能变更或架构调整
  • 次版本号:新增功能或重要改进
  • 修订号:Bug修复或小优化

当前版本: 2.0.0 维护状态: 活跃开发中