tensorflow group或collect将操作或张量提取到单个提取中

时间:2016-08-24 00:46:46

标签: python-2.7 logging tensorflow

我想为tf.merge_all_summaries为tf.get_collection('摘要')做的一般情况做些什么。

作为一个例子,我发现tf.contrib.metrics.streaming *套件引入了一组" update_op"必须每次运行一次的操作。我发现以下语法过于繁琐,

_,_,_,_,_,summary,_=sess.run( tf.get_collection('updates')+[merged_summaries]+[train_op])

我正在寻找一种不需要知道集合中更新次数的解决方法。在撰写本文时,我正在使用tensorflow-0.10。

1 个答案:

答案 0 :(得分:1)

TensorFlow现在支持(从版本0.10开始)将嵌套结构传递给Session.run()。例如,您现在可以将tf.Tensor个对象的列表列表传递给Session.run(),结果将是NumPy数组列表的类似嵌套列表。您还可以传递包含列表,张量和操作的混合列表(或元组)。在您的情况下,您可以写下以下内容:

updates = tf.get_collection('updates')
_, summary, _ = sess.run([updates, merged_summaries, train_op])

在这种情况下,sess.run()的返回值是一个包含三个元素的列表,其中第一个(被忽略的)元素是一个与updates长度相同的列表。