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

Mac M1运行RL代理gym环境时遇ImportError问题求助

问题原因

你遇到的错误是因为keras-rl2 1.0.5与Keras 3.x(TensorFlow 2.16+绑定的版本)不兼容。Keras 3.x重构了API,移除了model_from_config这个旧接口,但keras-rl2的旧版本仍在尝试导入该接口,导致报错。

解决方案

以下是几种可行的解决办法:

方案一:降级到兼容的Keras/TensorFlow版本

这是最稳妥的方案,将Keras和TensorFlow降级到适配keras-rl2 1.0.5的版本(比如TensorFlow 2.15.x + Keras 2.15.x):

  1. 卸载当前包:
pip uninstall -y keras tensorflow
  1. 安装兼容版本:
pip install tensorflow==2.15.0 keras==2.15.0 keras-rl2==1.0.5

如果用conda环境,也可以用conda命令:

conda remove -y keras tensorflow
conda install tensorflow=2.15.0 keras=2.15.0
pip install keras-rl2==1.0.5

方案二:安装适配Keras 3的keras-rl2分支

社区有维护适配Keras 3的keras-rl2分支,你可以直接安装该版本:

pip uninstall -y keras-rl2
pip install git+https://github.com/wau/keras-rl2.git@keras-3

注意这个分支是社区维护的,使用前建议测试稳定性。

方案三:手动修改keras-rl2源码(临时应急)

如果不想换版本,可以临时修改keras-rl2的源码,替换掉model_from_config的调用:

  1. 找到你conda环境中keras-rl2的安装路径,比如:/Users/username/miniforge3/envs/rl_gym/lib/python3.12/site-packages/rl/agents/dqn.py
  2. 找到文件中导入model_from_config的代码行,替换为Keras 3的替代接口:
    • 原导入:from tensorflow.keras.models import model_from_config
    • 替换为:from keras.models import clone_model
  3. 找到使用model_from_config(model_config)的代码块,替换为clone_model(base_model)(或者根据上下文用keras.Model.from_config(model_config))

这种方法仅适合临时使用,后续更新包后需要重新修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:52:19