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进行稳定可靠的文件操作详解
Dec 31 Python
Django中更新多个对象数据与删除对象的方法
Jul 17 Python
Python3实现Web网页图片下载
Jan 28 Python
Python Nose框架编写测试用例方法
Oct 26 Python
python3学习笔记之多进程分布式小例子
Feb 13 Python
浅谈python numpy中nonzero()的用法
Apr 02 Python
详谈python中冒号与逗号的区别
Apr 18 Python
PyQt5每天必学之创建窗口居中效果
Apr 19 Python
Django Rest framework之认证的实现代码
Dec 17 Python
Tensorflow实现神经网络拟合线性回归
Jul 19 Python
基于python 微信小程序之获取已存在模板消息列表
Aug 05 Python
学习python需要有编程基础吗
Jun 02 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
BBS(php &amp; mysql)完整版(七)
2006/10/09 PHP
PHP删除特定数组内容并且重建数组索引的方法.
2011/03/25 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
2014/11/28 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
JavaScript分析、压缩工具JavaScript Analyser
2014/12/31 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
2015/07/27 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
2016/01/25 Javascript
基于bootstrap插件实现autocomplete自动完成表单
2016/05/07 Javascript
概述jQuery中的ajax方法
2016/12/16 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
一个小时快速搭建微信小程序的方法步骤
2019/04/15 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
JavaScript变量Dom对象的所有属性
2020/04/30 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
浅谈vue 多个变量同时赋相同值互相影响
2020/08/05 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
linux 下实现python多版本安装实践
2014/11/18 Python
Python文件去除注释的方法
2015/05/25 Python
Django中间件基础用法详解
2019/07/18 Python
浅谈Python type的使用
2019/11/19 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
"引用"与多态的关系
2013/02/01 面试题
酒店副总岗位职责
2013/12/24 职场文书
入党积极分子思想汇报范文
2014/01/05 职场文书
不服劳动仲裁起诉书
2015/05/20 职场文书
2016新年年会主持词
2015/07/06 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
浅谈redis整数集为什么不能降级
2021/07/25 Redis
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python