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

VS Code导入keras_vggface时报keras.engine.topology模块缺失错误

问题场景

在VS Code的PowerShell虚拟环境中编写Python代码,调用TensorFlow与keras_vggface库,测试代码如下:

from tensorflow.keras.preprocessing import image
from keras_vggface.utils import preprocess_input
from keras_vggface.vggface import VGGFace

运行代码时抛出异常无法正常执行,完整报错信息如下:

Traceback (most recent call last):
  File "src/02_feature_extractor.py", line 7, in <module>
    from keras_vggface.utils import preprocess_input
  File "C:\Users\shana\Desktop\face_match\env\lib\site-packages\keras_vggface\__init__.py", line 1, in <module>    from keras_vggface.vggface import VGGFace
  File "C:\Users\shana\Desktop\face_match\env\lib\site-packages\keras_vggface\vggface.py", line 9, in <module>
    from keras_vggface.models import RESNET50, VGG16, SENET50  File "C:\Users\shana\Desktop\face_match\env\lib\site-packages\keras_vggface\models.py", line 20, in <module>
    from keras.engine.topology import get_source_inputs
ModuleNotFoundError: No module named 'keras.engine.topology'
故障原因

原版keras_vggface库已长期停止维护,代码内的导入逻辑适配的是TensorFlow 1.x时代的独立Keras包,当前环境使用的是TensorFlow 2.x内置的tf.keras,旧版Keras的keras.engine.topology模块在新版中已经迁移路径,因此触发模块找不到的报错。

解决步骤

注意:操作前请确认已经在PowerShell中激活了项目对应的face_match虚拟环境,避免依赖安装到全局Python环境

  • 执行命令卸载当前环境中不兼容的原版库:
pip uninstall -y keras keras-vggface
  • 执行命令安装适配TensorFlow 2.x的维护版本,该版本已修复所有旧版导入路径不兼容问题:
pip install keras-vggface-tf2
  • 安装完成后无需修改原有业务代码,直接重新运行脚本即可正常调用VGGFace相关接口。

手动修复方案(不推荐):如果不想替换安装包,可直接修改虚拟环境目录下的库源码:打开路径C:\Users\shana\Desktop\face_match\env\lib\site-packages\keras_vggface\models.py,将第20行的from keras.engine.topology import get_source_inputs替换为from tensorflow.keras.utils import get_source_inputs,同时将该库所有文件中from keras.开头的导入语句统一替换为from tensorflow.keras.即可。该方案需要逐行排查修改所有不兼容导入,后续库重装会丢失修改,优先选择安装适配版本的方案。

内容的提问来源于stack exchange,提问作者Shanu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:24:30