TensorFlow Keras导入报错:重复注册ReduceDataset梯度
问题:导入Keras相关包时出现KeyError错误
问题场景
使用Keras构建简单分类网络,导入必要包时触发错误。
导入代码
from tensorflow import keras from keras.models import Sequential from keras.layers import Dense from keras.callbacks import EarlyStopping, ModelCheckpoint from scikeras.wrappers import KerasClassifier
报错信息
KeyError: "Registering two gradient with name 'ReduceDataset'! (Previous registration was in register /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/tensorflow/python/framework/registry.py:65)"
报错栈起始信息
--------------------------------------------------------------------------- KeyError Traceback (most recent call last) Cell In[126], line 1 ----> 1 from tensorflow import keras 3 from keras.models import Sequential 4 from keras.layers import Dense File /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/tensorflow/__init__.py:45 42 from tensorflow.python import tf2 as _tf2 43 _tf2.enable() ----> 45 from tensorflow._api.v2 import __internal__ 46 from tensorflow._api.v2 import __operators__ 47 from tensorflow._api.v2 import audio File /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/tensorflow/_api.v2/__internal__/__init__.py:11 9 from tensorflow._api.v2.__internal__ import decorator 10 from tensorflow._api.v2.__internal__ import dispatch ----> 11 from tensorflow._api.v2.__internal__ import distribute 12 from tensorflow._api.v2.__internal__ import eager_context 13 from tensorflow._api.v2.__internal__ import feature_column
...
环境信息
- 系统:macOS
- 已安装包版本:
tensorflow 2.16.1 keras 3.3.3 scikeras 0.13.0 scikit-learn 1.4.2
解决方案
- 统一Keras导入方式
Keras 3.x是独立多后端框架,混合导入tensorflow.keras和独立keras会引发冲突,二选一即可:
- 仅使用独立Keras导入:
from keras.models import Sequential from keras.layers import Dense from keras.callbacks import EarlyStopping, ModelCheckpoint from scikeras.wrappers import KerasClassifier - 或统一使用TensorFlow后端的Keras路径:
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint from scikeras.wrappers import KerasClassifier
- 升级Scikeras适配Keras 3.x
Scikeras 0.13.0对Keras 3.x的支持存在适配问题,升级到兼容版本:
pip install --upgrade scikeras
- 重装匹配版本组合
若升级后仍报错,卸载现有依赖后重新安装兼容版本:
pip uninstall tensorflow keras scikeras -y pip install tensorflow==2.16.1 keras==3.3.3 scikeras==0.14.0
内容的提问来源于stack exchange,提问作者all.m
相关产品推荐
相关产品推荐

