如何将Teachable Machine训练的PoseNet模型转为TFLite格式?
手动将Teachable Machine PoseNet模型转换为TFLite格式(适配Flutter)
我之前正好解决过这个问题——Teachable Machine确实拿掉了PoseNet模型直接导出TFLite的功能,但咱们可以通过几步手动转换搞定,完全能适配Flutter应用,具体步骤如下:
第一步:导出TensorFlow.js格式的PoseNet模型
打开你的Teachable Machine项目,进入「Export Model」选项,选择「TensorFlow.js」下载压缩包。解压后你会得到model.json和一系列权重分片文件(比如group1-shard1ofX.bin),把它们放在同一个本地文件夹里。第二步:安装转换所需的工具
确保你本地有Python环境,然后通过pip安装依赖:pip install tensorflow tensorflowjs第三步:将TFJS模型转成TensorFlow SavedModel
打开终端,切换到刚才解压模型的文件夹,运行这条命令:tensorflowjs_converter --input_format=tfjs_layers_model --output_format=tf_saved_model ./model.json ./saved_model执行完成后,当前目录会生成一个
saved_model文件夹,里面是标准的TensorFlow SavedModel格式文件。第四步:把SavedModel转换成TFLite模型
这里用Python脚本更灵活,创建一个convert_to_tflite.py文件,内容如下:import tensorflow as tf # 加载SavedModel converter = tf.lite.TFLiteConverter.from_saved_model('./saved_model') # 开启默认优化(可选,能减小模型体积并提升运行速度) converter.optimizations = [tf.lite.Optimize.DEFAULT] # 执行转换 tflite_model = converter.convert() # 保存最终的TFLite模型 with open('pose_classifier.tflite', 'wb') as f: f.write(tflite_model)然后运行脚本:
python convert_to_tflite.py跑完之后,你就能得到
pose_classifier.tflite文件,这就是可以直接在Flutter里用的模型了。Flutter适配小提示
- 推荐使用
tflite_flutter插件加载模型,它对多平台的支持更稳定。 - 输入图像的尺寸要和你在Teachable Machine训练时的尺寸保持一致(默认是256x256),并且要把像素值归一化到0-1区间,和训练时的预处理逻辑对齐。
- 推荐使用
内容的提问来源于stack exchange,提问作者nikJ
相关产品推荐
相关产品推荐

