## 1. 核心 Bug 修复 ### 文件: `server/core/predictor.py` - **问题**: 在 `train_model` 方法中调用内部辅助函数 `_prepare_training_params` 时,没有正确传递 `product_ids` 和 `store_ids` 参数,导致在 `_prepare_training_params` 内部发生 `NameError`。 - **修复**: - 修正了 `train_model` 方法内部对 `_prepare_training_params` 的调用,确保 `product_ids` 和 `store_ids` 被显式传递。 - 此前已修复 `train_model` 的函数签名,使其能正确接收 `store_ids`。 - **结果**: 彻底解决了训练流程中的参数传递问题,根除了由此引发的 `NameError`。 ## 2. 代码清理与重构 ### 文件: `server/api.py` - **内容**: 移除了在 `start_training` API 端点中遗留的旧版、基于线程(`threading.Thread`)的训练逻辑。 - **原因**: 该代码块已被新的、基于多进程(`multiprocessing`)的 `TrainingProcessManager` 完全取代。旧代码中包含了大量用于调试的 `thread_safe_print` 日志,已无用处。 - **结果**: `start_training` 端点的逻辑变得更加清晰,只负责参数校验和向 `TrainingProcessManager` 提交任务。 ### 文件: `server/utils/training_process_manager.py` - **内容**: 在 `TrainingWorker` 的 `run_training_task` 方法中,移除了一个用于模拟训练进度的 `for` 循环。 - **原因**: 该循环包含 `time.sleep(1)`,仅用于在没有实际训练逻辑时模拟进度更新,现在实际的训练器会通过回调函数报告真实进度,因此该模拟代码不再需要。 - **结果**: `TrainingWorker` 现在直接调用实际的训练器,不再有模拟延迟,代码更贴近生产环境。 ## 3. 启动依赖 - **Python**: 3.x - **主要库**: - Flask - Flask-SocketIO - Flasgger - pandas - numpy - torch - scikit-learn - matplotlib - **启动命令**: `python server/api.py`
1.9 KiB
1.9 KiB
修改记录日志 (日期: 2025-07-16)
1. 核心 Bug 修复
文件: server/core/predictor.py
- 问题: 在
train_model
方法中调用内部辅助函数_prepare_training_params
时,没有正确传递product_ids
和store_ids
参数,导致在_prepare_training_params
内部发生NameError
。 - 修复:
- 修正了
train_model
方法内部对_prepare_training_params
的调用,确保product_ids
和store_ids
被显式传递。 - 此前已修复
train_model
的函数签名,使其能正确接收store_ids
。
- 修正了
- 结果: 彻底解决了训练流程中的参数传递问题,根除了由此引发的
NameError
。
2. 代码清理与重构
文件: server/api.py
- 内容: 移除了在
start_training
API 端点中遗留的旧版、基于线程(threading.Thread
)的训练逻辑。 - 原因: 该代码块已被新的、基于多进程(
multiprocessing
)的TrainingProcessManager
完全取代。旧代码中包含了大量用于调试的thread_safe_print
日志,已无用处。 - 结果:
start_training
端点的逻辑变得更加清晰,只负责参数校验和向TrainingProcessManager
提交任务。
文件: server/utils/training_process_manager.py
- 内容: 在
TrainingWorker
的run_training_task
方法中,移除了一个用于模拟训练进度的for
循环。 - 原因: 该循环包含
time.sleep(1)
,仅用于在没有实际训练逻辑时模拟进度更新,现在实际的训练器会通过回调函数报告真实进度,因此该模拟代码不再需要。 - 结果:
TrainingWorker
现在直接调用实际的训练器,不再有模拟延迟,代码更贴近生产环境。
3. 启动依赖
- Python: 3.x
- 主要库:
- Flask
- Flask-SocketIO
- Flasgger
- pandas
- numpy
- torch
- scikit-learn
- matplotlib
- 启动命令:
python server/api.py