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

运行keras-tuner的tuner.search时触发AttributeError问题求助

解决方案

问题根源

keras-tuner 1.4.7 与 TensorFlow 2.16.1 存在版本兼容性冲突,TensorFlow 2.16 的内部 API 变动导致 keras-tuner 在保存调参状态时触发空对象调用错误,同时 epoch 提前终止也是兼容性异常的表现。

具体解决步骤

方案1:降级 TensorFlow 到兼容版本

这是最直接有效的解决方式,keras-tuner 1.4.7 对 TensorFlow 2.15.x 版本支持更稳定:

  • 卸载当前 TensorFlow:
    pip uninstall tensorflow -y
    
  • 安装兼容版本:
    pip install tensorflow==2.15.0
    

方案2:升级 keras-tuner 到适配新版本的稳定版

尝试更新 keras-tuner 到官方修复过兼容性问题的版本:

  • 卸载旧版本:
    pip uninstall keras-tuner -y
    
  • 安装最新稳定版:
    pip install keras-tuner --upgrade
    

注意:如果升级后仍存在异常,优先选择方案1,因为部分新版本适配可能滞后于 TensorFlow 的更新。

方案3:临时路径规避(无需改版本)

如果暂时不想调整版本,可通过指定绝对路径避免 Windows 下的路径解析问题:
在调用 tuner.search() 时,显式设置调参日志的存储路径,确保路径为无特殊字符的绝对路径:

tuner.search(
    x_train, y_train,
    epochs=你的目标epoch数,
    validation_data=(x_val, y_val),
    directory=r"C:\keras_tuner_cache",  # 使用原始字符串避免转义问题
    project_name="tuning_demo"
)

验证步骤

调整完成后重新运行代码,确认:

  • 每个调参尝试能正常跑完你指定的 epoch 数
  • 不再出现 AttributeError: 'NoneType' object has no attribute 'File' 错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 18:13:13