我对张量流很新。我想了解Graph和GraphDef之间的概念差异。
此外,我应该运行从protobuf文件(.pb)加载的图表?
谢谢!
答案 0 :(得分:26)
DECLARE @SQL NVARCHAR(MAX) ;
SET @SQL = N'SELECT CAST(DATEADD(YEAR,DATEDIFF(YEAR, -1, CAST(@dateWithDots AS DATE) )-1, -1) AS DATE)'
EXEC sys.sp_executesql @SQL, N'@dateWithDots NVARCHAR(10)', @dateWithDots
或Graph
是tensorflw提出计算的核心概念。当您使用tensorflow时,首先创建自己的Computional Graph
并将Computation Graph
传递给tensorflow。怎么做?您可能知道,tensorflow支持许多前端编程语言,如Python,C ++,Java和Go,核心语言是C ++,其他语言如何将Graph
转换为C ++?他们使用一个名为Graph
的工具,它可以生成特定的语言存根,这是protobuf
来自的地方。它是GraphDef
的序列化版本。
我应该运行从protobuf文件(.pb)
加载的图形
您应该使用Graph
和*pb
GraphDef
向(默认)bind
读取GraphDef
文件,然后使用会话运行{ {1}}用于计算,例如following code:
Graph
答案 1 :(得分:1)
GraphDef是原型定义的here。这是图的序列化版本。您可以在任何TensorFlow前端(Python,R,C ++,Java,...)中打印,存储或恢复GraphDef。当它存储到文件中时,文件名通常以.pb
结尾,因此您应该将GraphDef用于.pb
个文件。
图形是一个抽象概念,对于不同的前端可以采用不同的形式。对于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="")
...