导入Keras pad_sequences和eli5时出现AttributeError错误的问题求助
故障原因
当前报错的核心根源是独立安装的Keras 2.6.0与TensorFlow 2.6.0存在已知兼容性冲突:
- 从TensorFlow 2.x版本开始,Keras已经作为官方内置子模块存在,独立安装的Keras会和TensorFlow内置的Keras模块产生路径调用冲突
- 两次报错本质都是导入独立Keras时触发了底层混合精度模块的属性缺失问题,导入eli5时的报错是因为eli5会自动检测环境中的Keras模块并尝试加载,触发了同一个冲突
解决方案
推荐优先使用第一种方案,兼容性最好:
方案1:改用TensorFlow内置Keras(推荐)
- 完全卸载环境中所有独立安装的Keras,分别在虚拟环境和全局Python环境执行命令:
pip uninstall keras -y
- 调整所有Keras相关导入语句,统一使用TensorFlow内置的Keras路径,例如:
原导入语句:
from keras.preprocessing.sequence import pad_sequences
修改为:
from tensorflow.keras.preprocessing.sequence import pad_sequences
- 若使用eli5时不需要用到Keras相关功能,可以在导入eli5前临时禁用其Keras加载逻辑,避免触发冲突:
import sys sys.modules['keras'] = None import eli5
方案2:版本降级适配
如果必须使用独立Keras,可以将TensorFlow和Keras统一降级到无冲突的2.5.x版本:
pip install tensorflow==2.5.3 keras==2.5.0
内容的提问来源于stack exchange,提问作者Dominique
相关产品推荐
相关产品推荐

