tensorflow lite 之生成 tflite 模型文件
下载最新的的tensorflow源码。
1.配置 tflite 文件转换所需环境
安装 bazel 编译工具
https://docs.bazel.build/versions/master/install.html
bazel build 出现问题:

图片来自https://github.com/tensorflow/tensorflow/issues/29053
解决方法:
在WORKSPACE中加入:

图片来自https://github.com/bazelbuild/rules_docker
利用 bazel 编译转换 tflite 所需的工具:
cd tensorflow-master/
bazel build tensorflow/python/tools:freeze_graph
bazel build tensorflow/lite/toco:toco
bazel build tensorflow/tools/graph_transforms:summarize_graph
2 tensorflow 模型固化,将 tensorflow 模型和计算图上变量的之合二为一。
利用 freeze_graph 工具,生成 tflite_graph.pb 文件(frozen的GraphDef文件)
cd /models-master/research/
python object_detection/export_tflite_ssd_graph.py
--pipeline_config_path=pipeline.config 路径
--trained_checkpoint_prefix=model.ckpt 保存的模型文件路径
--output_directory=model_graph 生成文件的路径
--add_postprocessing_op=true
注:生成文件夹 model_graph: 存放着 tflite_graph.pb 和 tflite_graph.pbtxt 文件
3 通过 tf 的 summarize_graph 函数可视化冻结图节点的输入输出信息
cd /tensorflow-master/
bazel-bin/tensorflow/tools/graph_transforms/summarize_graph
--in_graph=tflite_graph.pb 文件frozen.pb的路径
4 通过toco工具生成tflite文件
cd /tensorfolw_master/tensorflow/lite/toco
浮点型文件:
toco --graph_def_file=$path/tflite_graph.pb 文件frozen.pb的路径
--input_format=TENSORFLOW_GRAPHDEF
--output_file=model.tflite 存放生成文件的路径
--inference_type=FLOAT
--input_type=FLOAT
--input_arrays=normalized_input_image_tensor #根据第3步的结果修改
--input_shapes=1,300,300,3 #根据第3步的结果修改
--output_arrays='TFLite_Detection_PostProcess','TFLite_Detection_PostProcess:1', 'TFLite_Detection_PostProcess:2', 'TFLite_Detection_PostProcess:3' #根据第3步的结果修改
--allow_custom_ops
量化型文件:
toco --graph_def_file=$path/tflite_graph.pb 文件frozen.pb的路径
--input_format=TENSORFLOW_GRAPHDEF
--output_file=model_quantized.tflite 存放生成文件的路径
--inference_type=QUANTIZED_UINT8
--input_shapes=1,300,300,3 #根据第3步的结果修改
--input_arrays=normalized_input_image_tensor #根据第3步的结果修改
--output_arrays='TFLite_Detection_PostProcess','TFLite_Detection_PostProcess:1', 'TFLite_Detection_PostProcess:2', 'TFLite_Detection_PostProcess:3' #根据第3步的结果修改
--mean_values=128
--std_dev_values=127
--default_ranges_min=0
--default_ranges_max=6
--allow_custom_ops
tensorflow lite 之生成 tflite 模型文件的更多相关文章
- 转 Django根据现有数据库,自动生成models模型文件
Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...
- python学习-- Django根据现有数据库,自动生成models模型文件
Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...
- Tensorflow Lite tflite模型的生成与导入
假如想要在ARM板上用tensorflow lite,那么意味着必须要把PC上的模型生成tflite文件,然后在ARM上导入这个tflite文件,通过解析这个文件来进行计算. 根据前面所说,tenso ...
- 移动端目标识别(2)——使用TENSORFLOW LITE将TENSORFLOW模型部署到移动端(SSD)之TF Lite Developer Guide
TF Lite开发人员指南 目录: 1 选择一个模型 使用一个预训练模型 使用自己的数据集重新训练inception-V3,MovileNet 训练自己的模型 2 转换模型格式 转换tf.GraphD ...
- 移动端目标识别(1)——使用TensorFlow Lite将tensorflow模型部署到移动端(ssd)之TensorFlow Lite简介
平时工作就是做深度学习,但是深度学习没有落地就是比较虚,目前在移动端或嵌入式端应用的比较实际,也了解到目前主要有 caffe2,腾讯ncnn,tensorflow,因为工作用tensorflow比较多 ...
- TensorFlow Lite demo——就是为嵌入式设备而存在的,底层调用NDK神经网络API,注意其使用的tf model需要转换下,同时提供java和C++ API,无法使用tflite的见后
Introduction to TensorFlow Lite TensorFlow Lite is TensorFlow’s lightweight solution for mobile and ...
- AoE 搭档 TensorFlow Lite ,让终端侧 AI 开发变得更加简单。
AoE( AI on Edge , https://github.com/didi/AoE ) 是滴滴近期开源的终端侧 AI 集成运行时环境 ( IRE ). 随着人工智能技术快速发展,近几年涌现出了 ...
- TensorFlow Lite for Android示例
一.TensorFlow Lite TensorFlow Lite 是用于移动设备和嵌入式设备的轻量级解决方案.TensorFlow Lite 支持 Android.iOS 甚至树莓派等多种平台. ...
- EF自动生成的模型edmx代码分析
edmx代码分析 本文分析Entity Framework从数据库自动生成的模型文件代码(扩展名为edmx). 1. 概述 本文使用的数据库结构尽量简单,只有2个表,一个用户表和一个分公司表(相当于部 ...
随机推荐
- 和证书相关的文件格式: Pem, Pfx, Der
Pem Pem是最常见的证书文件格式.常见文件扩展名为.pem. 其文件内容采用如下格式: -----BEGIN CERTIFICATE----- Base64编码的证书内容-----END CERT ...
- mysql 查询整个数据库所有表的行数
>use information_schema; >select sum(table_rows) from tables where TABLE_SCHEMA = "test&q ...
- 【学习笔记】OI模板整理
CSP2019前夕整理一下模板,顺便供之后使用 0. 非算法内容 0.1. 读入优化 描述: 使用getchar()实现的读入优化. 代码: inline int read() { int x=0; ...
- vue 图片上传
功能说明: 1.调用手机拍照功能 2.调用相册功能 3.图片上传功能 4.图片预览功能 5.图片删除功能 关键点: .input 新增multiple .accept="image/*处理I ...
- java基础篇之Object类
1.Object类是所有类的超类 2.Object类的equals方法 public boolean equals(Object obj) {return (this == obj);} equals ...
- IDEA 重复代码快速重构(抽取重复代码快捷键)
Ctrl+Alt+M 顺带一提,eclipse的快捷键是:Alt+Shift+M;
- Cesium入门-3-官方完整实例
实例核心代码 //资源访问令牌 Cesium token Cesium.Ion.defaultAccessToken='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ ...
- 数据库与linux中quota的作用
linux命令,quota 命令显示磁盘使用情况和限额.缺省情况下,或者带 -u 标志,只显示用户限额.quota 命令报告 /etc/filesystems 文件中列出的所有文件系统的限额.如果 q ...
- mySQL 插入,更新和删除数据
插入数据: 语法: INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ); 如 ...
- 使用极路由进行外网映射,本地电脑做服务器,运行javaWeb项目
最近在学习javaWeb,一个项目需要android访问服务器,于是使用自己的笔记本电脑作为服务器,需要进行端口映射.使得外网可以访问自己的javaWeb项目或者网站之类的.普通路由请看:http:/ ...