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

远程机器导入虚拟环境遇TensorFlow与Keras兼容问题,本地环境正常

解决方法

核心原因

独立版Keras 2.3.1和TensorFlow 2.4.1的内部API不兼容——TF2.4.1的tensorflow.python.eager.context模块已经移除了get_config方法,但旧版独立Keras仍在调用这个方法,导致导入报错。from tensorflow import keras用的是TF自带的适配版Keras所以没问题,但hyperas默认调用独立Keras,因此仍会触发错误。

步骤1:卸载独立Keras,改用TF自带的tf.keras

远程环境里的独立Keras完全没必要保留,TF2.x已经内置了适配的tf.keras,直接卸载:

# 激活你的虚拟环境
conda activate myenv

# 用conda卸载(如果是conda安装的Keras)
conda remove keras -y

# 或者用pip卸载(如果是pip安装的)
pip uninstall keras -y

步骤2:安装适配TF2.x的hyperas版本

旧版hyperas依赖独立Keras,换用兼容tf.keras的版本:

pip install hyperas==0.4.1

这个版本会自动调用TF内置的Keras模块,不会再触发API不兼容的问题。

步骤3:重新构建环境(若前两步无效)

放弃本地导出的yml文件,直接在远程创建全新环境,避免跨平台的依赖冲突:

# 创建环境(Python版本和本地保持一致,比如3.8)
conda create -n myenv python=3.8 -y
conda activate myenv

# 安装指定版本的TensorFlow(自带适配的tf.keras)
conda install tensorflow=2.4.1 -c conda-forge -y

# 安装适配版hyperas
pip install hyperas==0.4.1

步骤4:手动修改hyperas源码(极端情况)

如果上述步骤仍报错,说明hyperas代码里硬编码了独立Keras的导入,直接修改源码:

  1. 运行pip show hyperas查看hyperas的安装路径
  2. 打开该路径下的hyperas/optim.py文件
  3. 将所有import keras或from keras import ...的语句替换为from tensorflow import keras,比如:
    • 把from keras.models import Sequential改成from tensorflow.keras.models import Sequential
    • 把from keras.layers import Dense改成from tensorflow.keras.layers import Dense
  4. 保存后重新运行代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:54:16