在Tensorflow中,是否可以将一些摘要附加到已合并的summary_op?

时间:2018-04-21 02:45:36

标签: tensorflow

让我们说,一些内置函数返回train_opsummary_op summary_optf.summary.merge(summaries, name='summary_op')定义,我无法触及该函数。

另外,让我们说,我将使用内置的slim.learning.train,它将train_opsummary_op作为输入参数。

# -- typical
train_op, summary_op = model_fn(image)
slim.learning.train(train_op, summary_op=summary_op)

# -- my question
train_op, summary_op = model_fn(image)
some_other_summary_list = some_another_function()
summary_op_ = ...  # is it possible to append some_other_summary_list to summary_op?
slim.learning.train(train_op, summary_op=summary_op_)

如何在已合并的summary_op和新收集的摘要some_other_summary_list中合并摘要?

- 如果我tf.merge_all(tf.GraphKeys.SUMMARIES)实际上会有太多摘要,因为model_fn()只会收集有用和必要的摘要。

- 我可以考虑定义单独的summary_op2并定义train_step_fn,如下所示:

from tensorflow.contrib.slim.python.slim.learning import train_step
def train_step_fn(...):
    ... = train_step(...)
    if iteration % 100 == 0: 
        summaries = session.run(summary_op2)
        summary_writer.add_summary(summaries, iteration)
slim.learning.train(train_op, summary_op=summary_op, train_step_fn=train_step_fn)

然而,如果我能以某种方式将新摘要附加到summary_op,这似乎太多了。有可能吗?

1 个答案:

答案 0 :(得分:1)

如果&#34; import android.databinding.Observable import android.databinding.ObservableField class NonNullObservableField<T : Any>( value: T, vararg dependencies: Observable ) : ObservableField<T>(*dependencies) { init { set(value) } override fun get(): T = super.get()!! @Suppress("RedundantOverride") // Only allow non-null `value`. override fun set(value: T) = super.set(value) } 和新收集的summary_op&#34;由summaries some_other_summary_list创建,您可以通过tf.summary.merge再次合并它们,如此代码所示:

tf.summary.merge([summary_op, summaries some_other_summary_list])