keras_vggface库导入报错:无法从keras.utils导入layer_utils如何解决?
修复keras_vggface的ImportError问题
问题原因
你遇到的ImportError: cannot import name 'layer_utils' from 'keras.utils'是版本冲突导致的:
- 同时安装了独立的Keras 2.2.5和TensorFlow 2.15.0(自带新版Keras),两者的工具模块结构不一致
- keras-vggface 0.6尝试从旧版独立Keras导入
layer_utils,但该模块在TensorFlow集成的新版Keras中已调整位置或命名
解决方案(推荐方案):使用TensorFlow内置的Keras
步骤1:卸载独立Keras及相关依赖
打开终端执行以下命令,移除冲突的独立Keras包:
pip uninstall -y keras keras-utils
步骤2:验证TensorFlow Keras的可用性
运行以下代码确认导入的Keras已切换为TensorFlow内置版本:
import keras print(keras.__version__) # 输出应与TensorFlow版本匹配,例如2.15.0(对应TF 2.15.0)
步骤3:修复keras_vggface的导入问题(若仍报错)
如果运行原代码仍出现相同错误,需手动修改keras_vggface的导入语句:
- 找到keras_vggface的安装目录(通常在
anaconda3/lib/site-packages/keras_vggface) - 打开
models.py文件,找到以下行:from keras.utils import layer_utils - 将其替换为:
from tensorflow.keras.utils import layer_utils - 保存文件后重新运行你的代码。
备选方案:降级TensorFlow适配旧版Keras
若必须保留独立Keras 2.2.5,可将TensorFlow降级到兼容版本(如1.14.0),但此方案不推荐(TensorFlow 1.x已停止维护):
pip install tensorflow==1.14.0
内容的提问来源于stack exchange,提问作者Nabaa Alaa
相关产品推荐
相关产品推荐

