Tensorflow:差异 get_tensor_by_name 与 get_operation_by_name?
Tensorflow: difference get_tensor_by_name vs get_operation_by_name?
答案here说一个returns一个运算而另一个returns一个张量。从名称和文档中可以明显看出这一点。但是,假设我执行以下操作:
logits = tf.add(tf.matmul(inputs, weights), biases, name='logits')
我正在遵循 Tensorflow Mechanics 101. Should I restore it as an operation or as a tensor? I am afraid that if I restore it as a tensor I will only get the last computed values for the logits; nonetheless, the post here 中描述的模式,这似乎表明没有区别或者我应该只使用 get_tensor_by_name
。这个想法是计算一组新输入的对数,然后相应地做出预测。
简短回答:您可以同时使用 get_operation_by_name()
和 get_tensor_by_name()
。长答案:
tf.Operation
当你打电话时
op = graph.get_operation_by_name('logits')
... 它 returns 类型 tf.Operation
的一个实例,它是计算图中的一个节点,它对其输入执行一些操作并产生一个或多个输出。在本例中,它是一个 plus
操作。
你总是可以在会话中评估一个操作,如果这个操作需要输入一些占位符值,引擎将强制你提供它们。一些操作,例如读取变量,没有任何依赖关系,可以在没有占位符的情况下执行。
在您的情况下,(我假设)logits
是根据输入占位符 x
计算得出的,因此如果没有特定的 x
,logits
就没有任何值.
tf.Tensor
另一方面,调用
tensor = graph.get_tensor_by_name('logits:0')
...returns 对象 tensor
,其类型为 tf.Tensor
:
Represents one of the outputs of an Operation
.
A Tensor
is a symbolic handle to one of the outputs of an Operation
.
It does not hold the values of that operation's output, but instead
provides a means of computing those values in a TensorFlow tf.Session
.
因此,换句话说,张量评估与操作执行相同,并且上述所有限制也适用。
为什么 Tensor
有用? Tensor
可以作为输入传递给另一个 Operation
,从而形成图形。但在您的情况下,您可以假设两个实体的含义相同。
答案here说一个returns一个运算而另一个returns一个张量。从名称和文档中可以明显看出这一点。但是,假设我执行以下操作:
logits = tf.add(tf.matmul(inputs, weights), biases, name='logits')
我正在遵循 Tensorflow Mechanics 101. Should I restore it as an operation or as a tensor? I am afraid that if I restore it as a tensor I will only get the last computed values for the logits; nonetheless, the post here 中描述的模式,这似乎表明没有区别或者我应该只使用 get_tensor_by_name
。这个想法是计算一组新输入的对数,然后相应地做出预测。
简短回答:您可以同时使用 get_operation_by_name()
和 get_tensor_by_name()
。长答案:
tf.Operation
当你打电话时
op = graph.get_operation_by_name('logits')
... 它 returns 类型 tf.Operation
的一个实例,它是计算图中的一个节点,它对其输入执行一些操作并产生一个或多个输出。在本例中,它是一个 plus
操作。
你总是可以在会话中评估一个操作,如果这个操作需要输入一些占位符值,引擎将强制你提供它们。一些操作,例如读取变量,没有任何依赖关系,可以在没有占位符的情况下执行。
在您的情况下,(我假设)logits
是根据输入占位符 x
计算得出的,因此如果没有特定的 x
,logits
就没有任何值.
tf.Tensor
另一方面,调用
tensor = graph.get_tensor_by_name('logits:0')
...returns 对象 tensor
,其类型为 tf.Tensor
:
Represents one of the outputs of an
Operation
.A
Tensor
is a symbolic handle to one of the outputs of anOperation
. It does not hold the values of that operation's output, but instead provides a means of computing those values in a TensorFlowtf.Session
.
因此,换句话说,张量评估与操作执行相同,并且上述所有限制也适用。
为什么 Tensor
有用? Tensor
可以作为输入传递给另一个 Operation
,从而形成图形。但在您的情况下,您可以假设两个实体的含义相同。