我想为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。
答案 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
长度相同的列表。