Hugging Face H5模型加载报错No model found in config file如何解决?
问题原因
你下载的tf_model.h5仅包含DistilBERT模型的权重参数,没有存储模型结构信息,而keras.models.load_model要求读取的h5文件必须同时包含模型结构和权重,所以才会触发配置文件中找不到模型的报错。
解决方案
方案1:直接通过Transformers库加载(最简便)
不需要单独调用Keras的load_model,直接用Transformers提供的from_pretrained方法加载即可,如果你已经把所有模型相关文件下载到本地,直接填本地文件夹路径就行,代码示例:
from flask import Flask, jsonify, request from transformers import AutoTokenizer, TFAutoModelForSequenceClassification, TextClassificationPipeline # 加载本地下载好的模型和分词器,替换为你存放所有下载文件的文件夹路径 tokenizer = AutoTokenizer.from_pretrained("./你的本地模型文件夹路径") model = TFAutoModelForSequenceClassification.from_pretrained("./你的本地模型文件夹路径") # 构建分类pipeline即可直接调用 classifier = TextClassificationPipeline(model=model, tokenizer=tokenizer)
注意因为你用的是TensorFlow版本的权重,要使用TFAutoModelForSequenceClassification而非PyTorch版的AutoModelForSequenceClassification。
方案2:手动加载h5权重
如果必须单独读取本地h5权重,可以先初始化对应结构的模型,再手动加载权重,代码如下:
from transformers import AutoConfig, TFAutoModelForSequenceClassification # 先加载模型配置构建结构 config = AutoConfig.from_pretrained("./你的本地模型文件夹路径/config.json") model = TFAutoModelForSequenceClassification.from_config(config) # 手动加载h5权重 model.load_weights("./tf_model.h5")
内容的提问来源于stack exchange,提问作者Andreas Notanto
相关产品推荐
相关产品推荐

