2017-06-02 16 views
0

私は訓練したモデルでTensorFlow for Poets 2コードラブに従っていますが、凍結した量子化グラフを埋め込み重量。 1つのファイル(例えば、my_quant_graph.pb)に取り込まれます。TensorFlowサービングまたはクラウドMLエンジンで使用するために、グラフプロト(pb/pbtxt)をSavedModelに変換します

TensorFlow Android inference libraryの推論でこのグラフを使用することができますので、私はCloud ML Engineでも同じことができると思っていましたが、SavedModelモデルでのみ動作するようです。

MLエンジンで使用するために、単一のpbファイル内の固定/量子化されたグラフを単純に変換する方法はありますか?

+0

がhttps://stackoverflow.com/a/44292448/1399222 – rhaertel80

答えて

2

SavedModelは、保存されたグラフの周りにいくつかの追加情報を提供することが判明しました。フリーズしたグラフにアセットが必要でないと仮定すると、指定されたサービングシグネチャのみが必要です。

グラフをCloudMLエンジンが受け入れた形式に変換するために実行したPythonコードです。注記私は1組の入出力テンソルしか持たない。

import tensorflow as tf 
from tensorflow.python.saved_model import signature_constants 
from tensorflow.python.saved_model import tag_constants 

export_dir = './saved' 
graph_pb = 'my_quant_graph.pb' 

builder = tf.saved_model.builder.SavedModelBuilder(export_dir) 

with tf.gfile.GFile(graph_pb, "rb") as f: 
    graph_def = tf.GraphDef() 
    graph_def.ParseFromString(f.read()) 

sigs = {} 

with tf.Session(graph=tf.Graph()) as sess: 
    # name="" is important to ensure we don't get spurious prefixing 
    tf.import_graph_def(graph_def, name="") 
    g = tf.get_default_graph() 
    inp = g.get_tensor_by_name("real_A_and_B_images:0") 
    out = g.get_tensor_by_name("generator/Tanh:0") 

    sigs[signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY] = \ 
     tf.saved_model.signature_def_utils.predict_signature_def(
      {"in": inp}, {"out": out}) 

    builder.add_meta_graph_and_variables(sess, 
             [tag_constants.SERVING], 
             signature_def_map=sigs) 

builder.save() 
+0

を参照してください。私はこれをやろうとしているが、誰かがコードなしで私のチェックポイントディレクトリを与えました。私は入力ノードと出力ノードの名前が必要なようです。チェックポイントディレクトリの情報から入力ノードと出力ノードを取得する方法はありますか? – blueether

+1

検査のチェックポイントツールを使用してください:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/inspect_checkpoint.py –

+1

クイック返信ありがとう。私がそれを実行したとき、私は 'python inspect_checkpoint.py --file_name = checkpoint 'を得ました。 2017-07-14 07:38:02.585722:W tensorflow/core/util/tensor_slice_reader.cc:95] ./checkpoint:Dataを開くことができませんでしたあなたのファイルは異なるファイル形式であり、別の復元演算子を使用する必要がありますか? テーブルファイルを開くことができません./checkpoint:データの消失:sstable(悪いマジックナンバー)ではありません:あなたのファイルは異なるファイル形式であり、別のリストア演算子を使用する必要がありますか? – blueether

関連する問題