在Colab(TensorFlow2.x环境)中无法导入keras-vggface的求助
解决TensorFlow 2.x环境中keras-vggface导入失败的问题
问题原因
你遇到的ImportError: cannot import name 'layer_utils' from 'keras.utils',是因为旧版keras-vggface依赖的Keras模块结构在TensorFlow 2.x中发生了变更,layer_utils的导入路径被调整,导致旧代码无法找到对应模块。
解决方案
方案一:安装适配TF 2.x的keras-vggface分支版本
这是最简便的解决方式,直接安装官方维护的TF2适配分支:
%tensorflow_version 2.x # 卸载旧版本 !pip uninstall -y keras-vggface # 安装TF2适配分支 !pip install git+https://github.com/rcmalli/keras-vggface.git@tf2 # 安装依赖包 !pip install keras-applications keras-preprocessing scikit-image pydot # 测试导入 import keras_vggface print(keras_vggface.__version__)
方案二:手动修改源码修复导入路径
如果方案一无法生效,可以手动修改keras-vggface的源码文件:
- 在Colab中执行以下命令定位models.py文件路径:
import keras_vggface print(keras_vggface.__file__)
- 通过Colab文件浏览器找到并打开该路径下的
models.py,将第16行的:
from keras.utils import layer_utils
修改为:
from keras.utils.layer_utils import layer_utils
- 保存修改后,重新执行
import keras_vggface即可完成导入。
内容的提问来源于stack exchange,提问作者Zhenyu Wang
相关产品推荐
相关产品推荐

