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)文章
終于搞懂了Keras中multiloss的對應(yīng)關(guān)系介紹
這篇文章主要介紹了終于搞懂了Keras中multiloss的對應(yīng)關(guān)系介紹,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06python?DataFrame數(shù)據(jù)分組統(tǒng)計(jì)groupby()函數(shù)的使用
在python的DataFrame中對數(shù)據(jù)進(jìn)行分組統(tǒng)計(jì)主要使用groupby()函數(shù),本文主要介紹了python?DataFrame數(shù)據(jù)分組統(tǒng)計(jì)groupby()函數(shù)的使用,具有一定的參考價(jià)值,感興趣的可以了解一下2022-03-03Python函數(shù)__new__及__init__作用及區(qū)別解析
這篇文章主要介紹了Python函數(shù)__new__及__init__作用及區(qū)別解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08使用Python的Supervisor進(jìn)行進(jìn)程監(jiān)控以及自動(dòng)啟動(dòng)
這篇文章主要介紹了使用Python的Supervisor進(jìn)行進(jìn)程監(jiān)控以及自動(dòng)啟動(dòng),使用python supervisor實(shí)現(xiàn),需要的朋友可以參考下2014-05-05python獲得兩個(gè)數(shù)組交集、并集、差集的方法
這篇文章主要介紹了python獲得兩個(gè)數(shù)組交集、并集、差集的方法,實(shí)例分析了Python操作list集合的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03Python語言實(shí)現(xiàn)機(jī)器學(xué)習(xí)的K-近鄰算法
今天學(xué)習(xí)的算法是KNN近鄰算法。KNN算法是一個(gè)監(jiān)督學(xué)習(xí)分類器類別的算法。下面我們來詳細(xì)的探討下2015-06-06python OpenCV的imread不能讀取中文路徑問題及解決
這篇文章主要介紹了python OpenCV的imread不能讀取中文路徑問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07python爬蟲之驗(yàn)證碼篇3-滑動(dòng)驗(yàn)證碼識(shí)別技術(shù)
本篇涉及到的驗(yàn)證碼為滑動(dòng)驗(yàn)證碼,不同于極驗(yàn)證,本驗(yàn)證碼難度略低,需要的將滑塊拖動(dòng)到矩形區(qū)域右側(cè)即可完成。對python爬蟲滑動(dòng)驗(yàn)證碼識(shí)別技術(shù)感興趣的朋友跟隨小編一起看看吧2019-04-04