升级Keras与TensorFlow仍出现_register_wrapper_optimizer_cls属性错误如何解决
报错解决方法
根因
该报错是代码同时混用独立Keras包与TensorFlow内置的tf.keras模块导致的版本冲突:你的导入语句中部分模块来自tf.keras,部分回调、包装类来自独立安装的keras包,二者版本不匹配就会触发该属性缺失错误。即使升级TensorFlow和Keras,只要混用问题没解决,报错就会持续出现。
修复步骤
- 统一所有Keras相关导入路径,全部替换为
tensorflow.keras下的模块:
找到原导入代码中这两行:
替换为:from keras.callbacks import ModelCheckpoint, LearningRateScheduler, EarlyStopping from keras.wrappers.scikit_learn import KerasClassifier
如果你的TensorFlow版本为2.12及以上,from tensorflow.keras.callbacks import ModelCheckpoint, LearningRateScheduler, EarlyStopping from tensorflow.keras.wrappers.scikit_learn import KerasClassifiertf.keras.wrappers已被迁移到独立的scikeras包,替换后如果报wrappers相关错误,执行pip install scikeras,再将第二行导入改为from scikeras.wrappers import KerasClassifier即可 - 卸载独立安装的Keras包,彻底避免调用冲突:
执行命令:pip uninstall keras -y - 修正优化器参数写法,高版本TensorFlow的Adam优化器已经弃用
lr参数,改用learning_rate:
将模型编译代码改为:autoenc3.compile(loss = 'mse', optimizer = Adam(learning_rate = 0.0001)) - 验证版本一致性,执行以下代码确认版本匹配:
import tensorflow as tf print("TensorFlow版本:", tf.__version__) print("内置Keras版本:", tf.keras.__version__)
完成以上修改后重新运行代码即可解决该报错。
内容的提问来源于stack exchange,提问作者zey.s
相关产品推荐
相关产品推荐

