Tensorflow 模型转换 .pb convert to .lite实例


Posted in Python onFebruary 12, 2020

2017年底,Tensorflow 推出Lite版本,可实现移动端的快速运行,其中,一个很关键的问题,如何把现有分类模型(.pb) 转换为(.lite)模型呢?

其实,步骤如下

1- 进入 Tensorflow 源码文件夹(以便bazel可以无需配置找打相应路径)

2- 转换可执行文件

bazel run --config=opt \
 //tensorflow/contrib/lite/toco:toco -- \
 --input_file=/tmp/mobilenet_v1_1.0_224_frozen.pb \  # 待转换模型路径
 --output_file=/tmp/tflite_model2.tflite \      # 目标模型路径
 --input_format=TENSORFLOW_GRAPHDEF \
 --output_format=TFLITE \
 --input_shape=1,224,224,3 \              # 输入图像宽高
 --input_array=input \                 # 输入节点名称<参考1>
 --output_array=MobilenetV1/Predictions/Reshape_1 \  # 输出节点名称<参考1>
 --inference_type=FLOAT \               # 图像数据类型
 --input_data_type=FLOAT

参考1: 如果输入输出节点不知道:进入python,import tf ,并通过如下命令( tf.GraphDef() )查找:

>>> import tensorflow as tf
>>> gf = tf.GraphDef()
>>> gf.ParseFromString(open('/your/path/to/graphname.pb','rb').read())
>>> for n in gf.node:
>>>   print ( n.name +' ===> '+n.op )

参转换后,在android手机上运行,在不考虑精度的前提下,不同实现方式得到的结果如下:

模型 type model size speed
mobilenet-v1-224 .pb 17 mb 106 ms
mobilenet-v1-224 .lite 16.4 mb 72 ms

以上这篇Tensorflow 模型转换 .pb convert to .lite实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python科学计算环境推荐——Anaconda
Jun 30 Python
Python中类型关系和继承关系实例详解
May 25 Python
Python学习小技巧之列表项的推导式与过滤操作
May 20 Python
用python实现百度翻译的示例代码
Mar 09 Python
Python3实现的反转单链表算法示例
Mar 08 Python
Python爬取数据保存为Json格式的代码示例
Apr 09 Python
基于python-opencv3的图像显示和保存操作
Jun 27 Python
基于pytorch的保存和加载模型参数的方法
Aug 17 Python
Python random库使用方法及异常处理方案
Mar 02 Python
Python 改变数组类型为uint8的实现
Apr 09 Python
Pycharm 2020.1 版配置优化的详细教程
Aug 07 Python
python脚本框架webpy模板控制结构
Nov 20 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
Feb 12 #Python
关于Tensorflow 模型持久化详解
Feb 12 #Python
Python qrcode 生成一个二维码的实例详解
Feb 12 #Python
python标准库sys和OS的函数使用方法与实例详解
Feb 12 #Python
python标准库os库的函数介绍
Feb 12 #Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
Feb 12 #Python
Python django框架开发发布会签到系统(web开发)
Feb 12 #Python
You might like
php 代码优化之经典示例
2011/03/24 PHP
php准确计算复活节日期的方法
2015/04/18 PHP
jQuery选择器源码解读(二):select方法
2015/03/31 Javascript
jquery实现移动端点击图片查看大图特效
2020/09/11 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
原生js实现新闻列表展开/收起全文功能
2017/01/20 Javascript
Angular.js中数组操作的方法教程
2017/07/31 Javascript
three.js加载obj模型的实例代码
2017/11/10 Javascript
vue.js简单配置axios的方法详解
2017/12/13 Javascript
jQuery进阶实践之利用最优雅的方式如何写ajax请求
2017/12/20 jQuery
webpack之devtool详解
2018/02/10 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
微信小程序实现发红包功能
2018/07/11 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
2018/09/07 Javascript
vue-cli2.0转3.0之项目搭建的详细步骤
2018/12/11 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
JavaScript单线程和任务队列原理解析
2020/02/04 Javascript
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
Python打造出适合自己的定制化Eclipse IDE
2016/03/02 Python
你应该知道的python列表去重方法
2017/01/17 Python
python基础教程之Filter使用方法
2017/01/17 Python
Python数据报表之Excel操作模块用法分析
2019/03/11 Python
对于Python深浅拷贝的理解
2019/07/29 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
2019/12/12 Python
tensorflow下的图片标准化函数per_image_standardization用法
2020/06/30 Python
深入解析HTML5的IndexedDB索引数据库
2015/09/14 HTML / CSS
英国网上购买门:Direct Doors
2018/06/07 全球购物
精选奢华:THE LIST
2019/09/05 全球购物
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
三分钟演讲稿事例
2014/03/03 职场文书
家长给学校的建议书
2014/05/15 职场文书
goland 恢复已更改文件的操作
2021/04/28 Golang
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL
教你在 Java 中实现 Dijkstra 最短路算法的方法
2022/04/08 Java/Android
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android