![](/img/trans.png)
[英]Can't convert frozen Inception graph .pb created with Docker to .tflite
[英]Can't convert Frozen Inference Graph to .tflite
我一般是 object 檢測 API 和 TensorFlow 的新手。 我按照本教程進行操作,最后制作了frozen_inference_graph.pb
。 我想在我的手機上運行這個 object 檢測 model,據我了解,這需要我將其轉換為 .tflite(如果這沒有任何意義,請 lmk)。
當我嘗試在此處使用此標准代碼進行轉換時:
import tensorflow as tf
graph = 'pathtomygraph'
input_arrays = ['image_tensor']
output_arrays = ['all_class_predictions_with_background']
converter = tf.lite.TFLiteConverter.from_frozen_graph(graph, input_arrays, output_arrays)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)
它拋出一個錯誤,說:
ValueError: None 僅在第一維中受支持。 張量“image_tensor”的形狀無效“[None, None, None, 3]”
這是我在網上發現的一個常見錯誤,在搜索了很多線程后,我試圖給代碼一個額外的參數:
converter = tf.lite.TFLiteConverter.from_frozen_graph(
graph, input_arrays, output_arrays,input_shapes={"image_tensor":[1,600,600,3]})
現在看起來像這樣:
import tensorflow as tf
graph = 'pathtomygraph'
input_arrays = ['image_tensor']
output_arrays = ['all_class_predictions_with_background']
converter = tf.lite.TFLiteConverter.from_frozen_graph(
graph, input_arrays, output_arrays,input_shapes={"image_tensor":[1,600,600,3]})
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)
這首先有效,但最后拋出另一個錯誤,說:
檢查失敗:array.data_type == array.final_data_type 數組“image_tensor”的實際和最終數據類型不匹配(data_type=uint8,final_data_type=float)。 致命錯誤:中止
我知道我的輸入張量具有 uint8 的數據類型,這會導致不匹配,我猜。 我的問題是,這是處理事情的正確方法嗎? (我想在我的手機上運行我的 model)。 如果是,我該如何修復錯誤? :/
非常感謝。
將您的 model 輸入( image_tensor
占位符)更改為具有數據類型tf.float32
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.