Tensorflow 模型轉(zhuǎn)換 .pb convert to .lite實例
2017年底,Tensorflow 推出Lite版本,可實現(xiàn)移動端的快速運行,其中,一個很關(guān)鍵的問題,如何把現(xiàn)有分類模型(.pb) 轉(zhuǎn)換為(.lite)模型呢?
其實,步驟如下
1- 進入 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 \ # 目標模型路徑 --input_format=TENSORFLOW_GRAPHDEF \ --output_format=TFLITE \ --input_shape=1,224,224,3 \ # 輸入圖像寬高 --input_array=input \ # 輸入節(jié)點名稱<參考1> --output_array=MobilenetV1/Predictions/Reshape_1 \ # 輸出節(jié)點名稱<參考1> --inference_type=FLOAT \ # 圖像數(shù)據(jù)類型 --input_data_type=FLOAT
參考1: 如果輸入輸出節(jié)點不知道:進入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手機上運行,在不考慮精度的前提下,不同實現(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實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Vertx基于EventBus發(fā)送接受自定義對象
- Git恢復(fù)之前版本的兩種方法reset、revert(圖文詳解)
- Git撤銷&回滾操作(git reset 和 get revert)
- IDEA連接mysql又報錯!Server returns invalid timezone. Go to tab and set serverTimezone prope的問題
- PIL包中Image模塊的convert()函數(shù)的具體使用
- MySQL數(shù)據(jù)庫中CAST與CONVERT函數(shù)實現(xiàn)類型轉(zhuǎn)換的講解
- SpringBoot基于HttpMessageConverter實現(xiàn)全局日期格式化
- 使用IDEA和Gradle構(gòu)建Vertx項目(圖文步驟)
- Vert.x運行環(huán)境搭建流程圖解
相關(guān)文章
終于搞懂了Keras中multiloss的對應(yīng)關(guān)系介紹
這篇文章主要介紹了終于搞懂了Keras中multiloss的對應(yīng)關(guān)系介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06python?DataFrame數(shù)據(jù)分組統(tǒng)計groupby()函數(shù)的使用
在python的DataFrame中對數(shù)據(jù)進行分組統(tǒng)計主要使用groupby()函數(shù),本文主要介紹了python?DataFrame數(shù)據(jù)分組統(tǒng)計groupby()函數(shù)的使用,具有一定的參考價值,感興趣的可以了解一下2022-03-03Python函數(shù)__new__及__init__作用及區(qū)別解析
這篇文章主要介紹了Python函數(shù)__new__及__init__作用及區(qū)別解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08使用Python的Supervisor進行進程監(jiān)控以及自動啟動
這篇文章主要介紹了使用Python的Supervisor進行進程監(jiān)控以及自動啟動,使用python supervisor實現(xiàn),需要的朋友可以參考下2014-05-05python OpenCV的imread不能讀取中文路徑問題及解決
這篇文章主要介紹了python OpenCV的imread不能讀取中文路徑問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07