如何修复错误:无法注册两个同名指标:/tensorflow/api/keras/optimizers
错误原因分析
- CUDA相关非致命警告:开头找不到
cudart64_110.dll的警告仅表示当前环境未安装匹配版本的CUDA工具包,如果你不需要用GPU加速运行TensorFlow,可以直接忽略该警告,不会影响代码的正常执行。 - 核心致命报错根源:
Cannot register 2 metrics with the same name: /tensorflow/api/keras/optimizers以及最终抛出的AlreadyExistsError,是TensorFlow与独立安装的Keras包版本不兼容导致的冲突。TensorFlow 2.x版本已经内置了完整的tf.keras模块,如果你同时在环境中安装了独立的Keras包,且两者版本不一致,就会触发指标重复注册的报错,你的报错栈也明确显示导入tf.keras相关模块时调用了独立Keras包的文件,由此可以确认是版本冲突问题。
解决方案
- 优先推荐直接卸载环境中独立安装的Keras包,使用TensorFlow自带的
tf.keras即可,执行命令:
pip uninstall keras -y
卸载完成后重新运行代码即可解决冲突。
- 若业务场景必须使用独立Keras包,需要保证Keras版本与当前安装的TensorFlow版本完全一致,比如TensorFlow版本为2.7时,Keras也需要安装2.7版本,执行命令:
pip install keras==[你的TensorFlow版本号]
- 若需要使用GPU加速,解决开头的CUDA警告,只需安装与当前TensorFlow版本匹配的CUDA 11.x及对应版本的cuDNN即可。
内容的提问来源于stack exchange,提问作者GEOFFREY ZIMBA
相关产品推荐
相关产品推荐

