You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Colab中tf.keras 2.4导入旧模块失败,混用tf与tf.keras报错如何解决?

解决方案

1. 校准Colab环境依赖

先执行以下命令重装匹配版本的依赖包,执行完成后必须重启Colab运行时再执行后续代码,否则版本不会生效:

!pip uninstall -y tensorflow keras
!pip install tensorflow==2.4.0 keras==2.4.0 h5py==2.10.0

2. 统一导入来源

全程使用独立Keras包,删除所有代码中tf.keras相关的导入语句,所有Keras组件(模型、层、回调、损失、优化器等)统一从keras模块导入,完全避免两类Keras混用。

3. 修复过时模块命名

Keras 2.4版本已经移除了objectives模块,相关功能全部合并到losses模块下,对原代码做如下替换即可:

  • 原导入语句from keras.objectives import XXX → 替换为 from keras.losses import XXX
  • 如果原代码大量使用objectives别名调用,可以直接将导入改为import keras.losses as objectives,无需修改后续业务代码
    完成以上操作后即可同时解决两类报错:
  • AttributeError: 'ReduceLROnPlateau' object has no attribute '_implements_test_batch_hooks' 报错本质是tf.keras和独立Keras组件混用导致,统一导入来源后直接修复
  • ModuleNotFoundError: No module named 'tensorflow.keras.objectives 是过时模块命名导致,替换为losses后即可修复
    内容的提问来源于stack exchange,提问作者Vadim
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:36:03