Optuna调参时中断Jupyter内核,已完成的调优结果是否会保留?
Optuna调参中途中断后读取结果相关问题解答
你点击Jupyter Notebook的停止按钮中断运行后,可正常调用study.best_params和study.best_trials获取已完成的50轮迭代的调参结果,不会因为键盘中断触发报错,相关逻辑说明如下:
- Optuna的每一轮试验(trial)完成后会立即将该轮的参数、评估指标等信息写入当前
study对象的内存存储中,不需要等待所有设置的迭代全部完成才汇总数据。 - 键盘中断仅会终止正在运行中的试验进程,不会修改、删除已经成功完成的试验的记录。
- 只要后续运行单元格时没有重新初始化
study对象,已完成的50轮试验数据会一直保留在该对象中,除了最优参数、最优试验记录外,你也可以正常读取study.trials等属性获取全部已完成试验的明细。
补充实用操作建议
为了避免后续操作意外丢失已跑的试验数据,你可以在中断运行后第一时间将study对象持久化存储到本地,参考代码如下:
import joblib # 存储study对象到本地文件 joblib.dump(study, "catboost_optuna_study_50trials.pkl") # 后续需要读取时使用如下代码即可恢复所有已完成的试验数据 # study = joblib.load("catboost_optuna_study_50trials.pkl")
如果之后你还需要跑完剩余的50轮迭代,直接读取上述持久化文件得到的study对象即可接着之前的进度继续运行,不需要重新跑已经完成的试验。
内容的提问来源于stack exchange,提问作者Hojiyama
相关产品推荐
相关产品推荐

