无效参数错误在 x = tf.占位符( "float" , 形状=[无, D], 名称='Input_data')



我正在训练一个具有多个输入的模型,以进行 10 倍交叉验证。我使用循环来训练具有 10 个不同输入的模型 10 次。第一次使用第一个输入数据时,网络训练并完成。我使用

sess.close()

最后关闭上一个会话并删除所有以前的数据。但是当在第二次迭代中给出第二个输入时,训练停止并给我以下错误:

x = tf.placeholder("float", shape=[None, D], name='Input_data')
InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'Input_data' with dtype float
 [[Node: Input_data = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/gpu:0"]()]]
 [[Node: Evaluating_accuracy/Mean/_91 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_145_Evaluating_accuracy/Mean", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"]()]]

我该如何解决这个问题。如果它是第一次工作,那么为什么它第二次对新数据不起作用。尽管如此,我还是结束了上届会议。

您可能正在折叠之间重新定义图形。您应该在不重新定义图形的情况下创建新会话。

首次运行 tf.placeholder 命令时,在 python 变量 x 中存储指向占位符节点的指针。第二次运行它时,将覆盖该指针。本质上,您有内存泄漏。现在有两个占位符节点。其中一个被x指向,原始一个被泄露。

最新更新