如何在Python脚本中加载TFLite模型?已用Bazel完成.pb转TFLite
没问题!我来一步步教你怎么在Python里加载TFLite模型并验证输出是否正确,这事儿其实挺简单的~
加载并验证TFLite模型的Python步骤
1. 先搞定依赖
首先得确保你装了TensorFlow——毕竟TFLite的Python API就藏在TensorFlow包里。如果还没装,直接用pip安装:
pip install tensorflow
2. 核心代码示例(带注释)
我写了一份完整的示例脚本,每一步都标清楚了,你直接改改路径就能用:
import tensorflow as tf import numpy as np # 第一步:加载你的TFLite模型 interpreter = tf.lite.Interpreter(model_path="这里换成你的模型路径/xxx.tflite") # 给模型分配内存,必须走这一步 interpreter.allocate_tensors() # 第二步:获取输入输出的细节(方便我们对齐数据格式) input_details = interpreter.get_input_details() output_details = interpreter.get_output_details() # 第三步:准备测试用的输入数据 # 重点!输入的形状、数据类型必须和模型要求的完全匹配! # 比如模型要求输入是(1, 224, 224, 3)的float32,你就得生成对应规格的数据 input_shape = input_details[0]['shape'] # 这里用随机数凑个测试数据,你可以换成自己的真实测试样本(比如之前喂给PB模型的输入) input_data = np.array(np.random.random_sample(input_shape), dtype=np.float32) # 第四步:把输入数据喂给模型 interpreter.set_tensor(input_details[0]['index'], input_data) # 第五步:运行推理 interpreter.invoke() # 第六步:取出输出结果 output_data = interpreter.get_tensor(output_details[0]['index']) print("模型输出结果:") print(output_data)
3. 几个关键提醒
- 输入必须对齐:别瞎喂数据!你可以先打印输入细节确认要求:
print("模型要求的输入形状:", input_details[0]['shape']) print("模型要求的输入数据类型:", input_details[0]['dtype']) - 对比验证输出:如果你有原PB模型的输出结果,把完全相同的输入分别喂给PB模型和TFLite模型,然后对比两者的输出。如果是量化模型,数值可能会有微小误差,这是正常的;如果是浮点模型,结果应该几乎完全一致。
- 量化模型特殊处理:如果你的TFLite模型是量化过的(比如uint8/int8类型的输入输出),记得按照量化规则处理输入(比如把浮点值转成量化后的整数),或者拿到输出后做反量化还原成浮点值。
4. 常见坑排查
- 要是遇到“分配张量失败”的错误,先检查模型路径对不对,再看输入形状是不是和模型要求的不匹配。
- 输出结果不对劲?先确认输入数据的预处理是不是和训练时一致(比如归一化的均值、标准差有没有搞错)。
这样操作下来,你就能轻松验证TFLite模型的输出是否正确啦!
内容的提问来源于stack exchange,提问作者Harshit Mishra
相关产品推荐
相关产品推荐

