Tensorflow的Graph和GraphDef之间的区别

YAO*_*YAO 22 tensorflow

我对张量流很陌生.我想了解Graph和GraphDef之间的概念差异.

此外,我应该运行从protobuf文件(.pb)加载的图表?

谢谢!

eli*_*inx 38

Graph或者Computional Graph是tensorflw提出计算的核心概念.当您使用tensorflow时,首先创建自己的Computation Graph并传递Graph给tensorflow.怎么做?您可能知道,tensorflow支持许多前端编程语言,如Python,C++,Java和Go,核心语言是C++,其他语言如何转换Graph为C++?他们使用一种protobuf可以生成特定语言存根的工具,这就是它的GraphDef来源.这是一个序列化的版本Graph.

我应该运行从protobuf文件(.pb)加载的图表

你应该阅读您*pb的文件使用GraphDef,并bindGraphDef一个(默认)Graph,然后使用一个会话来运行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)
Run Code Online (Sandbox Code Playgroud)