Google Colab重装TensorFlow2.6.0后出现BaseRandomLayer属性错误如何解决
错误原因
该AttributeError: module 'keras.engine.base_layer' has no attribute 'BaseRandomLayer'报错的核心是卸载tf-nightly时没有完全清除其配套的高版本独立Keras包,与你重新安装的TensorFlow 2.6.0内置的低版本Keras产生版本冲突,导入时高版本Keras的类调用了低版本Keras不存在的底层接口。
解决步骤
- 第一步:卸载所有相关残留包,在Colab单元格执行如下命令:
!pip uninstall -y keras tensorflow tf-nightly keras-nightly
- 第二步:重新安装TensorFlow 2.6.0,该版本自带适配的内置Keras,不需要额外安装独立Keras包:
!pip install tensorflow==2.6.0
- 第三步:点击Colab顶部菜单栏「代码执行程序」→「重新启动代码执行程序」,必须重启运行时才能让新安装的包生效,不要在当前运行时直接执行导入。
- 第四步:重启后先执行验证代码确认环境正常:
import tensorflow as tf print(tf.__version__) from tensorflow.keras import Model
导入代码优化建议
- 你的导入语句存在别名冲突问题:同时写了
from tensorflow import keras和from tensorflow.keras import backend as keras,后者会覆盖前者的keras别名,建议将后者修改为from tensorflow.keras import backend as K避免命名冲突。 - 不需要同时导入
tensorflow.keras.preprocessing.image.ImageDataGenerator和keras_preprocessing.image.ImageDataGenerator,仅保留前者即可,避免调用逻辑混乱。
内容的提问来源于stack exchange,提问作者Yogesh Riyat
相关产品推荐
相关产品推荐

