我知道到处都有几个类似的问题,但我可以找到任何用例 when using TFRecord . 所有答案似乎都假设输入来自 placeholders 而不是 TFRecord ,以及使用两个不同作家的答案 .

Show training and validation accuracy in TensorFlow using same graph https://github.com/tensorflow/tensorflow/issues/7089

使用占位符

基本流程如下所示 .

x = tf.placeholder(...)
net = Net(x,y)

train_writer = ...
val_writer = ...    

summary = sess.run(net.summary_op, feed_dict={x:...train_input...})
train_writer.add_summary(summary, n)

summary = sess.run(net.summary_op, feed_dict={x:...val_input...})
val_writer.add_summary(summary, n)

# same summary with different writer --> same plot in tensorboard

当使用 placeholders 时,只存在一个图形,因此它们可以在train和val之间使用相同的张量名称 .

使用TFRecord

但是据我所知,我必须定义另一个相同的网络,并且在此过程中,张量(包括摘要张量)具有前缀,例如( loss_1:0 对原始 loss:0 ) . 无论作家如何,这似乎都会产生不同的情节 .

x, y = tf.train.batch([image, label], ...) # training set
vx, vy = tf.train.batch([vimage, vlabel], ...) # validation set

with tf.variable_scope("model") as scope:
    net = Net(x,y)
    scope.reuse_variables()
    vnet = Net(vx,vy)

summary_train = sess.run(net.summary_op)
summary_val = sess.run(vnet.summary_op)

我想不出怎么解决这个问题 . 有人可以请求建议/帮助吗?