导入tensorflow.keras的Sequential时出现同名指标已存在错误如何解决?
报错原因
这个错误本质是本地环境中独立安装的Keras包版本与TensorFlow内置的Keras版本不兼容。
你看到的Stack Overflow提到的"never import twice"表述含义是:TensorFlow 2.0之后已经内置了完整的Keras实现(也就是你代码中调用的tensorflow.keras),如果你同时额外安装了独立的keras第三方包,导入过程中两个版本的Keras会尝试注册同名的监控指标,就会触发这个重复资源冲突报错。
简单来说就是环境中同时存在两套Keras实现,导入时抢占了同名的注册资源。
解决方法
按优先级尝试以下方案即可:
- 方案一(优先选择):卸载独立安装的Keras包
执行命令:
卸载完成后重新运行代码,90%以上的同类型报错都可以直接解决。pip uninstall keras -y - 方案二:统一Keras和TensorFlow的版本
如果卸载后依然报错,说明版本依赖绑定存在问题,先查询当前TensorFlow版本:
再安装和TensorFlow版本完全一致的Keras版本,例如TensorFlow版本为2.7.0时,执行:import tensorflow as tf print(tf.__version__)pip install keras==2.7.0 - 方案三(临时规避):统一导入路径
代码中所有Keras相关导入都统一使用tensorflow.keras开头的路径,不要出现单独import keras或者from keras import xxx的语句,避免触发两套Keras的同时加载。
内容的提问来源于stack exchange,提问作者Wreza Shafaghi
相关产品推荐
相关产品推荐

