object转float_人工智能-Object Detection API 模型转tflite并验证
最近在用TensorFlow Object Detection API訓練目標檢測模型,訓練好的pb模型大小17.6M,用pb預測效果不錯,于是想著如何在手機端運行,查看官網關于tflite的轉換,網址:https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/running_on_mobile_tensorflowlite.md。
預測使用的pb模型:
在主目錄下的research目錄執行如下:
生成預測使用的pb文件
注意里面的相關路徑需要換成自己的ckpt的目錄。執行完后,會看到一個名字為--output_directory指定的目錄。這里為exported_graphs目錄,里面包含了一個SavedModel 和frozen graph,其中的.pb文件就是預測使用的。
如上轉換pb和預測過程參考我之前的文章即可。
關于tflite,需要使用如下操作:
生成frozen graph
注意第二行pipeline_config_path為你的pipeline.config目錄路徑,trained_config_path路徑為訓練好的ckpt模型文件,output_dir為tflite輸出目錄文件夾名字,執行完后在tflite目錄會看到兩個文件tflite_graph.pb and tflite_graph.pbtxt.
接下來就是轉tflite了,之前嘗試了其他轉tflite的方式,雖然只有幾行代碼,但發現一直有問題,因此按照官網要求一步一步轉,這次使用TOCO轉tflite,首先需要安裝TensorFlow源碼并編譯。。。。。切記,要不然找不到bazel目錄。。。。
編譯生成量化的tflite
?注意在編譯后的bazel同一級目錄執行,input_file為上一步生成的tflite_graph.pb文件。output_file為本次要生成的tflite文件。其他的為固定寫法,如果你的模型輸入不是300x300注意改input_shapes.執行完就能看到一個detect.tflite文件,該文件大小17M多,這次量化后的模型。
float類型的模型轉換方式:
生成float(未量化)的tflite
?如上生成detect.tflite文件。
注意:在對比tflite和pb的一致性時,輸入到tflite的圖片需要進行(image-127.5)/128操作。否則模型輸出結果和pb文件對不上。
這樣pb文件和tflite預測的結果就能一樣,不過float模型大小和pb文件差不多,而且量化的時候模型大小為0,不明白為什么量化的時候模型為量化成功原因,現在只能使用float類型的tflite
后續再講其他轉pb和tflite的方式以及驗證方式。
喜歡的朋友和點擊關注哦
總結
以上是生活随笔為你收集整理的object转float_人工智能-Object Detection API 模型转tflite并验证的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java项目类上有黑色的点_图像处理 –
- 下一篇: java泛型_Java核心知识 基础五