如何在Google Colab中将TensorFlow Protobuf模型转换为TensorFlow.js格式
Colab 端TensorFlow模型转TFJS格式全流程操作步骤
1. 前置环境配置
- 挂载Google Drive存储(避免Colab实例重启文件丢失),执行代码:
from google.colab import drive drive.mount('/content/drive')
运行后按照提示完成授权,即可在Colab中访问你的Google Drive文件,将你导出的exported_models文件夹提前上传到Drive的对应目录,比如/content/drive/MyDrive/路径下。
- 安装匹配版本的tensorflowjs依赖:
因为你使用的TensorFlow版本为2.3.1,不能直接安装最新版tensorflowjs,否则会出现兼容性错误,执行以下命令安装对应兼容版本:!pip install tensorflowjs==2.8.6
安装完成后可以执行!tensorflowjs_converter --version确认安装成功。
2. 模型转换操作
- 先确认你的SavedModel目录路径,即包含
assets、variables文件夹的saved_model目录的完整路径,示例路径为/content/drive/MyDrive/exported_models/saved_model - 执行转换命令:
!tensorflowjs_converter --input_format=tf_saved_model --output_format=tfjs_graph_model /content/drive/MyDrive/exported_models/saved_model /content/drive/MyDrive/exported_models/tfjs_output
其中:- 第一个路径为输入的SavedModel文件夹路径,替换为你自己的实际路径
- 第二个路径为转换后TFJS模型的输出目录,转换完成后该目录下会生成
model.json结构文件和若干.bin权重分片文件
3. 核心注意事项
- 版本匹配:TensorFlow和tensorflowjs的大版本必须对应,TF2.3.x系列固定使用2.8.x版本的tensorflowjs,不要随意升级版本
- 文件存储:所有输入、输出文件都必须存放在挂载的Google Drive路径下,Colab实例的临时存储目录(/content下非drive目录)在实例关闭后会清空所有数据
- 格式适配:如果是TensorFlow Object Detection导出的模型,必须指定
output_format=tfjs_graph_model,不要使用tfjs_layers_model参数,后者不支持这类计算图格式的模型转换 - 体积优化:如果需要减小模型体积适配网页端加载,可以在转换命令中添加量化参数
--quantize_uint8 "[''],在精度损失可控的前提下将模型体积压缩约75% - 结果校验:转换完成后执行
!ls 你的输出目录路径,确认model.json和权重文件都正常生成,没有出现空文件或缺失文件的情况
4. 云存储部署操作
转换完成后不需要下载到本地,可以直接在Colab中安装对应云存储的Python SDK,直接将输出目录下的所有文件上传到云存储即可,全程不需要本地设备参与操作。
内容的提问来源于stack exchange,提问作者NoLongerHuman
相关产品推荐
相关产品推荐

