Tensorflow 模型轉(zhuǎn)換 .pb convert to .lite實(shí)例
2017年底,Tensorflow 推出Lite版本,可實(shí)現(xiàn)移動(dòng)端的快速運(yùn)行,其中,一個(gè)很關(guān)鍵的問題,如何把現(xiàn)有分類模型(.pb) 轉(zhuǎn)換為(.lite)模型呢?
其實(shí),步驟如下
1- 進(jìn)入 Tensorflow 源碼文件夾(以便bazel可以無需配置找打相應(yīng)路徑)
2- 轉(zhuǎn)換可執(zhí)行文件
bazel run --config=opt \ //tensorflow/contrib/lite/toco:toco -- \ --input_file=/tmp/mobilenet_v1_1.0_224_frozen.pb \ # 待轉(zhuǎn)換模型路徑 --output_file=/tmp/tflite_model2.tflite \ # 目標(biāo)模型路徑 --input_format=TENSORFLOW_GRAPHDEF \ --output_format=TFLITE \ --input_shape=1,224,224,3 \ # 輸入圖像寬高 --input_array=input \ # 輸入節(jié)點(diǎn)名稱<參考1> --output_array=MobilenetV1/Predictions/Reshape_1 \ # 輸出節(jié)點(diǎn)名稱<參考1> --inference_type=FLOAT \ # 圖像數(shù)據(jù)類型 --input_data_type=FLOAT
參考1: 如果輸入輸出節(jié)點(diǎn)不知道:進(jìn)入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 )
參轉(zhuǎn)換后,在android手機(jī)上運(yùn)行,在不考慮精度的前提下,不同實(shí)現(xiàn)方式得到的結(jié)果如下:
| 模型 | type | model size | speed |
|---|---|---|---|
| mobilenet-v1-224 | .pb | 17 mb | 106 ms |
| mobilenet-v1-224 | .lite | 16.4 mb | 72 ms |
以上這篇Tensorflow 模型轉(zhuǎn)換 .pb convert to .lite實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Vertx基于EventBus發(fā)送接受自定義對象
- Git恢復(fù)之前版本的兩種方法reset、revert(圖文詳解)
- Git撤銷&回滾操作(git reset 和 get revert)
- IDEA連接mysql又報(bào)錯(cuò)!Server returns invalid timezone. Go to tab and set serverTimezone prope的問題
- PIL包中Image模塊的convert()函數(shù)的具體使用
- MySQL數(shù)據(jù)庫中CAST與CONVERT函數(shù)實(shí)現(xiàn)類型轉(zhuǎn)換的講解
- SpringBoot基于HttpMessageConverter實(shí)現(xiàn)全局日期格式化
- 使用IDEA和Gradle構(gòu)建Vertx項(xiàng)目(圖文步驟)
- Vert.x運(yùn)行環(huán)境搭建流程圖解
相關(guān)文章
python科學(xué)計(jì)算之narray對象用法
今天小編就為大家分享一篇python科學(xué)計(jì)算之narray對象用法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
Python運(yùn)行時(shí)修改業(yè)務(wù)SQL代碼
這篇文章主要介紹了Python運(yùn)行時(shí)修改業(yè)務(wù)SQL代碼,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06
Python GUI編程學(xué)習(xí)筆記之tkinter事件綁定操作詳解
這篇文章主要介紹了Python GUI編程學(xué)習(xí)筆記之tkinter事件綁定操作,結(jié)合實(shí)例形式分析了Python GUI編程tkinter事件綁定常見操作技巧與使用注意事項(xiàng),需要的朋友可以參考下2020-03-03
使用Django啟動(dòng)命令行及執(zhí)行腳本的方法
今天小編就為大家分享一篇使用Django啟動(dòng)命令行及執(zhí)行腳本的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
python連接mysql數(shù)據(jù)庫示例(做增刪改操作)
python連接mysql數(shù)據(jù)庫示例,提供創(chuàng)建表,刪除表,數(shù)據(jù)增、刪、改,批量插入操作,大家參考使用吧2013-12-12
Python接口自動(dòng)化淺析logging日志原理及模塊操作流程
這篇文章主要為大家介紹了Python接口自動(dòng)化系列文章淺析logging日志原理及模塊操作流程,文中詳細(xì)說明了為什么需要日志?日志是什么?以及日志用途等基本的原理2021-08-08
python與js主要區(qū)別點(diǎn)總結(jié)
在本篇內(nèi)容里小編給大家整理了關(guān)于python與js主要區(qū)別點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2020-09-09

