Colab切换GPU运行时导入keras.optimizers.Adam报模块不存在错误
问题根因
- Colab切换CPU/GPU运行时会完全重置容器环境,之前在CPU环境手动安装的Keras 2.2.4会被直接清除,恢复为环境默认预装的依赖版本。
- 当前Colab GPU运行时默认预装Keras 3.x版本,该版本重构了优化器模块:标准
Adam类已迁移至keras.optimizers.legacy子路径下,直接从keras.optimizers导入必然触发ImportError。 - Keras 2.2.4是TensorFlow 1.x生态的适配版本,和GPU环境默认预装的TensorFlow 2.x+高版本存在API、依赖双重冲突,直接安装指定版本Keras也无法正常运行。
修复步骤(固定使用Keras 2.2.4 + GPU算力)
所有操作必须在切换到GPU运行时后执行,切换环境前的安装操作都会被重置失效:
- 先卸载环境预装的高版本冲突依赖:
!pip uninstall -y keras tensorflow tf-keras tensorflow-estimator
- 安装和Keras 2.2.4完全兼容的GPU版TensorFlow 1.15(该版本为Keras 2.2.4适配的最高TF稳定版,支持CUDA算力调用):
!pip install tensorflow-gpu==1.15.0
- 强制安装指定版本的Keras 2.2.4:
!pip install keras==2.2.4 --no-deps
- 执行命令重启运行时,让旧版本依赖生效(安装低版本TF后必须重启,否则会加载残留的高版本动态库报错):
import os os.kill(os.getpid(), 9)
- 运行时重启后,重新执行导入代码即可正常运行,可通过以下代码验证GPU是否正常加载:
from keras.optimizers import Adam import keras.backend as K # 输出可用GPU设备列表 print("可用GPU设备:", K.tensorflow_backend._get_available_gpus())
如果输出内容包含/device:GPU:0字样,说明GPU算力已经正常挂载,可以启动长周期训练任务。
注意事项
- 不要在CPU环境提前安装上述依赖,切换GPU环境后所有自定义安装包都会被清除,必须在GPU环境初始化完成后再执行安装命令。
- 安装完成后不要执行任何升级TensorFlow、Keras的操作,否则会覆盖指定版本,复现导入错误。
- 如果安装过程中出现h5py等依赖版本报错,可补充安装兼容版本:
!pip install h5py==2.10.0,再重启运行时即可。
内容的提问来源于stack exchange,提问作者Alejandro Del Pozzo Escalera
相关产品推荐
相关产品推荐

