如何在VSCode中将YOLOv8s的best.pt模型转换为TensorFlow Lite?
从YOLOv8 PyTorch模型(.pt)转换为TensorFlow Lite(.tflite)的可行方案
1. 环境准备
先在VSCode的Python环境中安装必要依赖:
pip install ultralytics tensorflow torch
ultralytics是YOLOv8官方库,自带多格式模型转换工具tensorflow用于处理TFLite模型的转换与验证torch负责加载PyTorch格式的.pt模型
2. 模型转换步骤
方法一:用Ultralytics工具直接转换(最简便)
Ultralytics支持一键将YOLOv8的.pt模型转成TFLite格式:
- 在VSCode中新建Python脚本(如
convert.py),写入代码:
from ultralytics import YOLO # 加载本地的best.pt模型 model = YOLO('best.pt') # 导出为TFLite格式,文件会保存在当前目录 model.export(format='tflite')
- 运行脚本:
python convert.py
执行完成后,当前目录会生成best.tflite文件。
方法二:先转SavedModel再转TFLite(支持自定义调整)
如果需要对模型做修改(比如冻结层、调整输入尺寸),可以分两步转换:
- 先将
.pt模型导出为TensorFlow SavedModel:
from ultralytics import YOLO model = YOLO('best.pt') # 导出SavedModel到指定目录 model.export(format='saved_model', save_dir='tf_saved_model')
- 用TensorFlow将SavedModel转为TFLite(可添加量化优化):
import tensorflow as tf # 加载SavedModel converter = tf.lite.TFLiteConverter.from_saved_model('tf_saved_model') # 可选:启用动态量化,减小模型体积、加快推理速度 converter.optimizations = [tf.lite.Optimize.DEFAULT] # 执行转换 tflite_model = converter.convert() # 保存最终的TFLite模型 with open('best_quantized.tflite', 'wb') as f: f.write(tflite_model)
3. 验证转换结果
可以快速验证TFLite模型是否可用:
import tensorflow as tf # 加载TFLite模型 interpreter = tf.lite.Interpreter(model_path='best.tflite') interpreter.allocate_tensors() # 查看输入输出形状,确认模型加载正常 input_shape = interpreter.get_input_details()[0]['shape'] output_shape = interpreter.get_output_details()[0]['shape'] print(f"模型输入形状: {input_shape}") print(f"模型输出形状: {output_shape}")
能正常打印输入输出信息,说明转换成功。
注意事项
- 确保
best.pt文件放在VSCode工作目录下,或在代码中填写绝对路径 - 若遇到版本兼容问题,可指定兼容版本:
pip install ultralytics==8.0.200 tensorflow==2.15.0 - 如需int8量化(进一步压缩模型),需准备校准数据集,可参考TensorFlow量化逻辑调整转换代码
内容的提问来源于stack exchange,提问作者zizo
相关产品推荐
相关产品推荐

