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

无法使用tf.saved_model.load()加载TensorFlow Lite模型问题咨询

核心原因

你遇到的TypeError: '_UserObject' object is not callable报错,本质是tf.saved_model.load()仅支持加载TensorFlow原生SavedModel格式模型,完全不支持读取TFLite格式文件,读取TFLite时无法解析出标准的SavedModel调用接口,只会返回无调用能力的封装对象,调用时就会抛出该错误。无论怎么调整代码都不可能用这个接口完成TFLite模型加载,这是接口本身的能力限制,和你现有代码的写法无关。
另外你检索到的「用tf.keras.models.load_model()加载」的说法也是错误的,这个接口是用来加载Keras原生训练模型(.h5格式或Keras SavedModel格式),同样不支持直接加载TFLite模型。

正确处理方案

你不需要把所有TensorFlow代码都改成Keras格式,直接使用TFLite专属的运行接口即可,参考代码如下:

import tensorflow as tf

# 加载TFLite模型文件
interpreter = tf.lite.Interpreter(model_path="your_model.tflite")
# 预分配运行所需的张量内存
interpreter.allocate_tensors()

# 获取模型输入输出的张量配置
input_config = interpreter.get_input_details()
output_config = interpreter.get_output_details()

# 输入数据需要和训练时的shape、dtype完全匹配
input_data = 待推理的输入数据
# 写入输入数据
interpreter.set_tensor(input_config[0]['index'], input_data)
# 执行推理
interpreter.invoke()
# 读取推理结果
result = interpreter.get_tensor(output_config[0]['index'])
如果你确实需要使用tf.saved_model.load()加载模型

直接使用转TFLite之前的原始SavedModel格式文件加载即可,不需要修改现有逻辑。如果原始模型文件丢失,也可以将TFLite模型反向转换为SavedModel格式,但这个过程会存在精度损失,且不保证所有自定义算子都能兼容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:06:01