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

将.pb文件转换为.tflite格式时提示SavedModel文件不存在问题如何解决

TF Hub模型转TFLite报错解决方案

报错原因

你遇到的报错:

SavedModel file does not exist at: openimages_v3_ssd_mobilenet_v2_1/{saved_model.pbtxt|saved_model.pb}

本质是TFLite转换器找不到符合要求的SavedModel文件,常见诱因有两个:

  • 代码中 saved_model_dir 填写的路径和你本地存放模型的实际路径不匹配,报错提示的路径是v3版本模型目录,你要转换的是v4版本,大概率是路径名拼写错误
  • 没有将TF Hub平台的模型正确导出为本地SavedModel格式,直接使用了未解压的压缩包路径/网络URL作为输入路径,转换器仅支持读取本地包含saved_model.pb文件的解压目录

正确转换步骤

方案1:先手动下载模型再转换

  1. 下载目标模型后解压到本地单独文件夹,确认文件夹根目录下存在saved_model.pb文件和variables子文件夹
  2. 将代码中saved_model_dir替换为该文件夹的完整绝对路径,不要使用相对路径避免识别出错
  3. 补充自定义算子允许配置后运行转换即可

方案2:直接通过tensorflow_hub库加载转换,无需手动下载

完整可运行代码如下:

import tensorflow as tf
import tensorflow_hub as hub

# 加载TF Hub目标模型
hub_model = hub.load("https://tfhub.dev/google/openimages_v4/ssd/mobilenet_v2/1")
# 导出为本地SavedModel格式
tf.saved_model.save(hub_model, "./openimages_v4_ssd_mobilenet_v2_savedmodel")

# 初始化TFLite转换器
converter = tf.lite.TFLiteConverter.from_saved_model("./openimages_v4_ssd_mobilenet_v2_savedmodel")
# 允许自定义算子,该SSD模型包含自定义操作必须加此行
converter.allow_custom_ops = True
# 执行转换
tflite_model = converter.convert()

# 保存转换后的TFLite模型
with open('openimages_v4_ssd_mobilenet_v2.tflite', 'wb') as f:
    f.write(tflite_model)

注意事项

  • 路径填写时不要包含中文、空格、特殊字符,避免不同系统的路径编码识别问题
  • 推荐使用TensorFlow 2.4及以上版本执行转换,避免版本不兼容导致的额外报错
  • 转换后的TFLite模型运行推理时,同样需要配置支持自定义算子的解释器才能正常使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:27:01