TensorFlow-打印摘要时是否删除名称范围?
我目前正在构建我的操作两次,一次用于培训,一次用于验证TensorFlow-打印摘要时是否删除名称范围?,tensorflow,tensorboard,Tensorflow,Tensorboard,我目前正在构建我的操作两次,一次用于培训,一次用于验证变量\u scope设置为具有reuse=True,以确保我只需要训练一组权重 不过,为了组织作战,我将作战大楼的训练要求包装在 with tf.name_scope='train': 同样,对验证也要这样做。这允许我通过简单地调用 tf.summary.merge(tf.get_collection(tf.GraphKeys.SUMMARIES, scope='train')) 最后,获取训练图或验证图的摘要,并使用相应的摘要保存程序保
变量\u scope
设置为具有reuse=True
,以确保我只需要训练一组权重
不过,为了组织作战,我将作战大楼的训练要求包装在
with tf.name_scope='train':
同样,对验证也要这样做。这允许我通过简单地调用
tf.summary.merge(tf.get_collection(tf.GraphKeys.SUMMARIES, scope='train'))
最后,获取训练图或验证图的摘要,并使用相应的摘要保存程序保存这些摘要
不幸的是,这也意味着培训摘要中的标量与验证中的等效标量不显示在同一绘图上(因为它们位于不同的名称范围)
是否有一种方法可以在保存摘要之前删除名称范围,或者有另一种方法可以将特定案例的摘要包装在一起而不首先应用名称范围?或者我需要手动跟踪每个案例的摘要吗
编辑:
请澄清,我的代码如下所示:
with tf.name_scope('train'):
create_network() # Summaries create in here.
with tf.name_scope('validation'):
create_network(reuse=True) # More summaries in here.
train_summaries = tf.summary.merge(tf.get_collection(tf.GraphKeys.SUMMARIES, scope='train'))
validation_summaries = tf.summary.merge(tf.get_collection(tf.GraphKeys.SUMMARIES, scope='validation'))
# Down here, create the summary saver hooks, etc.
在中执行类似的操作以消除不必要的前缀:
loss_name = re.sub('%s_[0-9]*/' % cifar10.TOWER_NAME, '', l.op.name)
tf.summary.scalar(loss_name, l)
也许您可以从
验证
以及代码的培训
部分报告同名标量。感谢您的回复!但除非我遗漏了什么,否则我认为你的解决方案对我的案子不起作用。我澄清了上面的代码可能是什么样子,因为我不确定我是最清楚的。也就是说,已在名称范围中创建了摘要。此外,此时还需要名称范围,因为我需要它来轻松地获取单独案例的摘要。没有它,我无法简单地获取整个摘要集(不将代码中的每个摘要手动标记为一个集合)。@golmschenk您可以保留全局查找并单独报告这个额外的标量。我明白了,如果我理解您的意思,我可以使用名称范围之外的全局查找来获取要添加到摘要中的值。然而,这仍然需要我单独指定我想这样做的每一个值,对吗?@golmschenk我担心,对于要绘制在板的同一部分上的所有标量,可能需要沿着这些线进行一些操作。然而,我对张力板的经验非常有限,所以其他更简单的方法可能仍然存在。