簡體   English   中英

無法將凍結推理圖轉換為 .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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM