2017-03-09 95 views
13

你可以得到一个由张名以tf.get_default_graph().get_tensor_by_name("tensor_name:0")如何按名称获得张量流?

但你可以得到一个操作,如Optimizer.minimizeenqueue操作上的队列?

在我的第一个模型中,我返回了从build_model函数中需要的所有张量和运算。但是张量表很难看。在后来的模型中,我将所有张量和操作放在字典中以方便访问。这一次我想我只是按照名字查找张量,因为我需要它们,但我不知道如何用ops做到这一点。

或者是否有更好的方法来做到这一点?我发现到处都需要各种张量和操作。培训,推理代码,测试用例,因此希望有一种很好的标准方式来访问图形的各个部分,而不是将变量传递到各处。

+1

这将是非常好的,如果有一个更加规范和更简洁的方式来获得张量和OPS出图的。我也经历了将所有东西都作为参数传递并将所有内容放入字典中的阶段。两者都有缺点。 –

+1

同意,在我最近的工作中,我将模型结构封装在一个类中,所有张量和操作都变成了model.mytensor或m.mytensor。除了压制警告消息外,目前为止似乎很方便。 –

回答

17

您可以使用tf.Graph.get_operation_by_name()方法按名称获得tf.Operation。例如,为了从默认的图形称为"enqueue"操作:

op = tf.get_default_graph().get_operation_by_name("enqueue")