You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Optuna存储AssertionError错误排查与解决求助

Optuna加载Study时AssertionError问题排查与解决

问题说明

使用Optuna进行超参数优化时,调用optuna.study.load_study()触发AssertionError,错误根源在于存储的版本检查环节(get_current_version()中断言version不为空失败)。已尝试升级Optuna和sqlite3库无效,怀疑与Azure虚拟机上的Python3.8版本有关。

解决方案

  • 检查存储文件完整性
    若使用SQLite存储(格式为sqlite:///xxx.db),可能存在文件损坏或未初始化的情况:

    • 若历史数据无保留价值,直接删除旧数据库文件,重新创建Study
    • 使用SQLite命令行工具验证存储结构:
      sqlite3 your_study.db
      SELECT * FROM alembic_version;
      
      若alembic_version表不存在或无数据,说明存储未正确初始化,需重新创建。
  • 适配Python3.8的Optuna版本
    较新的Optuna版本对Python3.8的支持有限,尝试降级到兼容的稳定版本:

    pip install optuna==3.2.0
    
  • 显式处理Study的创建与加载
    在加载前先确认Study是否存在,避免直接加载未初始化的存储:

    import optuna
    
    storage_name = "sqlite:///your_study.db"
    study_name = "your_study_name"
    
    try:
        study = optuna.load_study(study_name=study_name, storage=storage_name)
    except KeyError:
        # 若Study不存在则创建
        study = optuna.create_study(study_name=study_name, storage=storage_name)
    
  • 验证文件系统权限
    确保当前用户对存储文件所在目录拥有读写权限,避免因权限问题导致数据库表创建失败:

    chmod -R 755 /home/azureuser_rishi/JSSP/final/
    

内容的提问来源于stack exchange,提问作者Rishidhar Kasam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 17:45:18