簡體   English   中英

TensorFlow:優化推理由Estimator導出的SavedModel

[英]TensorFlow: Optimize for Inference a SavedModel exported by Estimator

我正在嘗試優化保存的圖形以進行推理,因此我可以在Android中使用它。

我第一次嘗試使用optimize_for_inference腳本失敗了

google.protobuf.message.DecodeError: Truncated message

所以我的問題是輸入/輸出節點是錯誤的還是腳本無法處理SavedModels(盡管它與凍結圖形相同的擴展名.pb)

關於第一個:因為使用Estimators我們提供input_fn而不是數據本身,應該將其視為輸入? 第一個tf操作呢? 喜歡:

x = x_dict['gestures']

# Data input is a 1-D vector of x_dim * y_dim features ("pixels")
# Reshape to match format [Height x Width x Channel]
# Tensor input become 4-D: [Batch Size, Height, Width, Channel]
x = tf.reshape(x, shape=[-1, x_dim, y_dim, 1], name='input')

(...)

pred_probs = tf.nn.softmax(logits, name='output')

BTW:如果在Android中加載SavedModel有不同之處,我也想知道。

先感謝您!

更新: https: //www.tensorflow.org/mobile/prepare_models上有很好的說明,其中包括對如何處理SavedModels的說明。 您可以使用--input_saved_model_dir凍結SavedModel到freeze_graph.py。

它們都是協議緩沖區(.pb),但不幸的是它們是不同的消息(即不同的文件格式)。 從理論上講,您可以先從SavedModel中提取MetaGraph ,然后“凍結”MetaGraph的GraphDef(將變量移動到常量中),然后在凍結的GraphDef上運行此腳本。 在這種情況下,您希望input_fn只是占位符。

您還可以在“SavedModel for Android”Github問題之一上添加一個加號表情符號。 中期我們想要對SavedModel進行標准化; 對不起,你遇到了這個!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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