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

TensorFlow2.7加载BERT模型报keras.engine无InputSpec属性错误求助

问题原因

你使用的keras_bert依赖旧版Keras的API路径:Keras 2.4及更早版本中InputSpec类归属keras.engine模块,而你安装的Keras 2.7.0属于高版本,该类已迁移至keras.layers模块,因此调用旧路径时触发AttributeError报错。

可选用解决方案
  • 方案一:降级依赖版本至适配范围
    将Keras和TensorFlow同步降级到兼容keras_bert的版本,执行以下安装命令即可:
pip install tensorflow==2.4.0 keras==2.4.3
  • 方案二:修改报错文件的API调用路径
    找到报错提示中的layer_normalization.py文件,将第70行的keras.engine.InputSpec直接替换为keras.layers.InputSpec,修改后无需调整其他业务代码即可正常运行。
  • 方案三:改用兼容性更好的官方BERT工具
    替换keras_bert为适配性更强的transformers库,该库对高版本TensorFlow/Keras适配完善,加载预训练BERT的示例代码如下:
from transformers import TFBertModel, BertTokenizer

folder = "multi_cased_L-12_H-768_A-12"
tokenizer = BertTokenizer.from_pretrained(folder)
model = TFBertModel.from_pretrained(folder)
model.summary()

内容的提问来源于stack exchange,提问作者Лион Соловев

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:06:03