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

如何修复‘无法从tensorflow.keras导入__version__’错误?

解决keras-rl2导入DQNAgent时的"cannot import name 'version' from 'tensorflow.keras'"错误

问题原因

keras-rl2 1.0.5版本的代码中尝试直接从tensorflow.keras导入__version__属性,但TensorFlow 2.10及以上版本中,tensorflow.keras不再暴露这个属性,导致导入失败。同时,直接调用keras.__version__报错也是因为这个原因——TensorFlow集成的Keras版本信息现在放在tensorflow.keras.version模块下。

解决方案

方案1:修改keras-rl2源代码(快速修复)

找到你的Anaconda环境中keras-rl2的安装目录(比如[你的环境路径]/lib/python3.x/site-packages/rl),修改相关文件中获取Keras版本的代码:

  1. 打开rl/__init__.py文件,找到类似以下的代码行:
    from tensorflow.keras import __version__ as keras_version
    
  2. 将其替换为兼容代码:
    try:
        from tensorflow.keras import __version__ as keras_version
    except ImportError:
        from tensorflow.keras.version import VERSION as keras_version
    
  3. 如果其他文件(比如rl/agents/dqn.py)中有同样的导入逻辑,做相同修改。

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

将TensorFlow降级到2.9.x版本(该版本仍保留tensorflow.keras.__version__属性),在Anaconda终端执行:

conda install tensorflow=2.9.0

降级后重新运行导入代码即可。

方案3:升级keras-rl2到最新开发版

keras-rl2的最新开发版本已修复该版本兼容问题,你可以通过克隆其官方源码仓库,在本地执行安装命令完成升级,或者使用pip直接安装其源码版本。

补充:正确查看TensorFlow集成Keras版本的方式

替代print(keras.__version__),使用以下代码查看版本:

import tensorflow as tf
print(tf.keras.version.VERSION)
# 或者直接查看TensorFlow版本,因为TF集成的Keras版本与TF版本绑定
print(tf.__version__)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 22:37:36