私はテンソルフローがかなり新しいです。 GraphとGraphDefの概念の違いを理解したい。TensorflowのグラフとGraphDefの相違点
さらに、protobufファイル(.pb)からロードされたグラフを実行する必要がありますか?
ありがとうございます!
私はテンソルフローがかなり新しいです。 GraphとGraphDefの概念の違いを理解したい。TensorflowのグラフとGraphDefの相違点
さらに、protobufファイル(.pb)からロードされたグラフを実行する必要がありますか?
ありがとうございます!
GraphDefはプロトタイプhereです。これはグラフのシリアライズ版です。任意のTensorFlowフロントエンド(Python、R、C++、Java、...)でGraphDefを印刷、保存、または復元することができます。ファイルに保存するときは、通常、ファイル名は.pb
で終わるので、.pb
ファイルにはGraphDefを使用する必要があります。
グラフは抽象的な概念であり、さまざまなフロントエンドに対して異なる形式にすることができます。 Pythonの場合、tf.Graph()はGraphDefと多くのユーティリティを含むPythonオブジェクト(code)を返します。
Pythonでは、tf.import_graph_defを使用してGraphDefを読み込むことができます。
with tf.gfile.GFile(graph_def_pb_file, "rb") as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
with tf.Graph().as_default() as graph:
tf.import_graph_def(graph_def, name="")
...
TF_GraphNextOperationで使用することができ、グラフにReadBinaryProto()で初期化GraphDefを()に変換する方法はあります:ここでは簡単なコード例はありますか?
おかげで、 フレッド
Graph
またはComputional Graph
はcomputionを提示するtensorflwの中核概念です。テンソルフローを使用するときは、まず自分自身をComputation Graph
とし、Graph
をテンソルフローに渡します。どうやってするか?ご存じのように、テンソルは、Python、C++、Java、Goなどの多くのフロントプログラミング言語をサポートしており、コア言語はC++で、その他の言語はGraph
をC++に変換する方法は?彼らはprotobuf
と呼ばれるツールを使用して、特定の言語スタブを生成することができます。その場所はGraphDef
です。これはGraph
のシリアル化されたバージョンです。あなたは(デフォルト)にGraphDef
をGraphDef
を使用して、あなたに*pb
ファイルを読み込み、bind
すべき
1は、私がいるProtobufファイル(.pb)からロードされたグラフを実行する必要があります
Graph
、その後、使用following codeのような計算のためにGraph
を実行するセッション:
import tensorflow as tf
from tensorflow.python.platform import gfile
with tf.Session() as sess:
model_filename ='PATH_TO_PB.pb'
with gfile.FastGFile(model_filename, 'rb') as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
g_in = tf.import_graph_def(graph_def)
LOGDIR='/logs/tests/1/'
train_writer = tf.summary.FileWriter(LOGDIR)
train_writer.add_graph(sess.graph)