加载HuggingFace CLIP模型遇OSError报错求助
解决Laion CLIP模型加载时缺少preprocessor_config.json的问题
问题原因
该模型仓库未包含preprocessor_config.json文件,但模型权重与标准CLIP结构完全兼容,可通过以下两种方式解决加载报错问题:
方案1:复用基础CLIP的处理器配置
由于该模型是CLIP的变体,预处理逻辑与OpenAI官方CLIP一致,直接调用官方CLIP的处理器即可:
from transformers import CLIPProcessor, CLIPModel model_id = "laion/CLIP-convnext_large_d_320.laion2B-s29B-b131K-ft-soup" # 使用标准CLIP的处理器配置 processor = CLIPProcessor.from_pretrained("openai/clip-vit-large-patch14") model = CLIPModel.from_pretrained(model_id)
方案2:手动创建预处理器配置文件
手动生成preprocessor_config.json文件,放入模型的本地缓存目录或自定义模型目录中,配置内容如下:
{ "crop_size": {"height": 320, "width": 320}, "do_center_crop": true, "do_normalize": true, "do_resize": true, "image_mean": [0.48145466, 0.4578275, 0.40821073], "image_std": [0.26862954, 0.26130258, 0.27577711], "resample": 3, "size": {"height": 320, "width": 320}, "tokenizer_class": "CLIPTokenizer", "truncation_side": "right" }
- 若使用本地缓存,可通过
transformers.utils.hub.get_cache_dir()命令查看缓存路径,找到对应模型文件夹后放入该文件即可。
补充:仅加载模型权重的方式
如果不需要使用处理器,仅需加载模型权重,可直接执行以下代码:
from transformers import CLIPModel model = CLIPModel.from_pretrained("laion/CLIP-convnext_large_d_320.laion2B-s29B-b131K-ft-soup")
内容的提问来源于stack exchange,提问作者Peyman
相关产品推荐
相关产品推荐

