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

本地加载EfficientNet预训练模型报SavedModel不存在错误求助

问题描述

本地提前下载EfficientNet预训练模型,未采用在线访问模型的调用方式:

  • 传入TF Hub官方在线模型地址调用时,代码可正常运行
  • 切换为本地路径加载时程序运行失败,抛出错误:OSError: SavedModel file does not exist at: C:/User/A/model/saved_model.pb

对应出错代码如下:

input_shape = (IMAGE_SIZE, IMAGE_SIZE, CHANNEL)

effinet_feature_extractor_model = "C:/User/A/model/saved_model.pb"

pretrained_effinet_model_without_top_layer = hub.KerasLayer(
    effinet_feature_extractor_model, input_shape=input_shape, trainable=False)
故障原因及修复方案
  • 传参路径错误:hub.KerasLayer加载本地SavedModel格式模型时,入参需要传入包含saved_model.pb文件的上层目录路径,不能直接传入saved_model.pb文件的完整路径。当前代码直接传入pb文件路径,框架会将该字符串识别为目录路径查找对应文件,必然触发不存在报错。
  • 本地模型文件结构缺失:完整的TF Hub SavedModel模型解压后,目标目录下需要包含三类内容,缺任意一项都会加载失败:
    • 模型结构文件saved_model.pb
    • 权重存储子目录variables/,目录内需包含variables.data-00000-of-00001、variables.index两个权重文件
    • 资源存储子目录assets/,部分模型该目录为空但必须存在
  • 路径识别异常:Windows环境下路径拼写错误(比如默认用户目录实际为C:/Users/而非C:/User/)、未做转义处理、路径包含中文/特殊空格都会导致路径识别失败,建议路径字符串前加r标记为原始字符串,同时核对实际目录名和代码中拼写是否完全一致。
修正后参考代码
input_shape = (IMAGE_SIZE, IMAGE_SIZE, CHANNEL)

# 传入包含saved_model.pb的目录路径,使用原始字符串避免转义问题
effinet_feature_extractor_model = r"C:/User/A/model"

pretrained_effinet_model_without_top_layer = hub.KerasLayer(
    effinet_feature_extractor_model, input_shape=input_shape, trainable=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:15:17