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

如何修复'tensorflow.compat.v2.__internal__'无register_call_context_function属性错误

报错根本原因

你安装的官方原版keras-rl(即你导入的rl包)已停止维护,仅适配TensorFlow 2.4及更早版本。TensorFlow 2.5版本移除了内部API tensorflow.compat.v2.__internal__.register_call_context_function,因此触发属性错误。

修复方案(按优先级排序)

方案1:使用适配高版本TensorFlow的社区维护包

该方案无需改动现有代码,对环境影响最小:

  • 卸载原版keras-rl:
pip uninstall keras-rl -y
  • 安装社区适配TF2.x的keras-rl2:
pip install keras-rl2
  • 直接重新执行原有导入代码from rl.agent import DQNAgent即可正常运行。

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

如果需要保留原版keras-rl,可以将TensorFlow降级到2.4版本(M1芯片适配良好):

  • 卸载现有相关依赖:
pip uninstall tensorflow-macos tensorflow-metal keras keras-rl -y
  • 安装匹配版本的依赖:
pip install tensorflow-macos==2.4.0 tensorflow-metal==0.1.2 keras==2.4.3 keras-rl==0.4.2

方案3:手动打补丁(临时修复)

如果不想改动现有依赖版本,可以直接修改keras-rl的源码跳过报错逻辑:

  1. 找到keras-rl的安装路径,一般为你的Python环境路径/lib/python3.9/site-packages/rl/callbacks.py
  2. 打开文件找到调用register_call_context_function的行,直接注释掉该行即可,该API仅为旧版TF的内部上下文注册逻辑,不影响核心功能运行。
M1设备额外注意事项

安装依赖时优先使用conda-forge源,避免x86架构包的兼容问题,出现依赖冲突时可先创建全新的conda虚拟环境重新安装相关包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:15:03