Tensorflow 为什么测试模型的总结必须将数据输入到列车模型中?

Tensorflow 为什么测试模型的总结必须将数据输入到列车模型中?,tensorflow,tensorboard,Tensorflow,Tensorboard,我建立了一个lstm培训模型,总结了我的损失。我还使用tf.variable_scope('model',reuse=True)构建了一个测试模型 现在我想查看我在测试模型上的损失,因此在我的step()函数中,我将self.merged添加到我的输出列表中: if not forward_only: output_feed = [self.update, self.gradient_norm, self.loss,

我建立了一个lstm培训模型,总结了我的损失。我还使用tf.variable_scope('model',reuse=True)构建了一个测试模型

现在我想查看我在测试模型上的损失,因此在我的step()函数中,我将self.merged添加到我的输出列表中:

if not forward_only:
    output_feed = [self.update,
            self.gradient_norm,
            self.loss,
            self.outputs,
            self.merged]
else:
    output_feed = [self.loss,
            self.outputs,
            self.merged]
当我将数据输入训练模型时,我成功地获得了合并的摘要,并在tensorboard上查看了损失

但是当我尝试使用step()函数将数据输入测试模型时,它引发了一个错误:

You must feed a value for placeholder tensor 'model/inputs/sequence_length' with dtype int32 and shape [?]
我发现,事实上,由get_variables()创建的变量与训练模型共享,因为它们具有相同的名称“model/variable_name”。但是包含所有占位符的其余变量使用不同的名称。在训练模型中,它们是“模型/变量名称”,而在测试模型中是“模型1/变量名称”

所以我认为,当我将数据输入到测试模型中时,我实际上输入了“model_1/placeholder”。我认为没有问题

事实上,如果我不将self.merged添加到我的输出列表中,获取测试结果确实没有问题。

然而,当我将self.merged添加到输出列表中时,我得到了上面描述的错误消息。它说我必须将数据输入到模型/占位符中。而不是测试模型的占位符模型/占位符中

我想知道,当我想将数据输入到测试模型中以获得摘要时,为什么我必须将数据输入到我的训练模型中

还是我的代码有问题

You must feed a value for placeholder tensor 'model/inputs/sequence_length' with dtype int32 and shape [?]