Tensorflow 为什么测试模型的总结必须将数据输入到列车模型中?
我建立了一个lstm培训模型,总结了我的损失。我还使用tf.variable_scope('model',reuse=True)构建了一个测试模型 现在我想查看我在测试模型上的损失,因此在我的step()函数中,我将self.merged添加到我的输出列表中: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,
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 [?]