You must feed a value for placeholder tensor 'Placeholder_1' with dtype float and shape [?,10]

1. 首先检查自己feed给tensor的数据类型与大小与placeholder所得到的tensor的是否相同,如果不同就改成相同的,如果相同,请看下面:

2. 原文链接:http://www.itkeyword.com/doc/7197603979214654287/tensorflow-issue-with-placeholder-and-summaries

The problem here is that some of the summaries in your graph—collected by tf.merge_all_summaries()depend on your placeholders. For example, the code in cifar10.py creates summaries for various activations at each step, which depend on the training example used.

The solution is to feed the same training batch when you evaluate summary_op:

if step % 100 == 0:
  summary_str = sess.run(summary_op, feed_dict={
      images: image[offset:(offset + batch_size)],
      images2: image_p[offset:(offset + batch_size)],
      labels: 1.0 * label[offset:(offset + batch_size)]})

While this gives the smallest modification to your original code, it is slightly inefficient, because it will re-execute the training step every 100 steps. The best way to address this (although it will require some restructuring of your training loop) is to fetch the summaries in the same call to sess.run() that performs a training step:

if step % 100 == 0:
  _, loss_value, summary_str = sess.run([train_op, loss, summary_op], feed_dict={
      images: image[offset:(offset + batch_size)],
      images2: image_p[offset:(offset + batch_size)],
      labels: 1.0 * label[offset:(offset + batch_size)]})
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 这个错误通常是因为你没有为模型的输入占位符提供正确的输入。你需要通过调用模型的 `predict` 方法并传递正确的输入来解决这个问题。具体来说,你需要将输入数据的形状与 `Placeholder` 的形状匹配,并将其传递给 `feed_dict` 参数。以下是一些示例代码,其中假设你有一个 `model` 对象和一个名为 `input_data` 的输入数据: ``` input_shape = (batch_size, 1) # 假设你的输入数据形状为(batch_size, 1) feed_dict = {model.input_placeholder: input_data.reshape(input_shape)} output = model.predict(feed_dict=feed_dict) ``` 在这个例子中,我们假设输入数据的形状是 (batch_size, 1),并将其传递给 `feed_dict` 参数。请注意,`input_placeholder` 是你的模型中输入占位符的名称,你需要根据实际情况进行更改。 ### 回答2: 这个错误是由于运行时没有为TensorFlow的占位符(Placeholder)提供所需的值导致的。错误消息中明确指出需要为数据类型为float且形状为[?,1]的占位符(Placeholder)提供一个值。 解决这个问题的方法是,在运行时为占位符提供一个合适的值。要做到这一点,需要使用TensorFlowfeed_dict机制。 下面是一个示例代码,展示了如何为占位符提供值: ```python import tensorflow as tf # 定义占位符 placeholder = tf.placeholder(tf.float32, shape=[None, 1]) # 其他计算图的定义 with tf.Session() as sess: # 运行时为占位符提供值 feed_dict = {placeholder: [[1.0], [2.0], [3.0]]} # 其他运行代码 # 在运行时通过feed_dict将占位符和值关联起来 result = sess.run(some_tensor, feed_dict=feed_dict) # 其他操作 ``` 在这个示例中,我们首先定义了一个占位符(placeholder),并指定了数据类型为float和形状为[?,1](?表示维度可以是任意值,1表示每个输入具有一个特征)。然后在运行时,通过feed_dict字典将占位符和值关联起来。在sess.run()中指定了需要计算的张量(some_tensor)以及feed_dict。这样,TensorFlow就能够根据所提供的值来执行计算。 需要注意的是,为了正确地为占位符提供值,传递的值需要符合占位符的形状和数据类型要求。在这个示例中,占位符的形状为[?,1],所以提供的值也应该是一个包含若干个列表的嵌套列表,每个列表包含一个浮点数。 希望这个解答能够帮助你解决这个错误。 ### 回答3: 这个错误是因为在运行时没有提供与占位符张量“Placeholder”相对应的float数据类型和形状为[?,1]的数值。在使用 TensorFlow 进行计算时,我们经常会使用占位符来表示将在运行时提供的变量。 要解决这个错误,需要确保在运行时提供正确的输入数据。有几种方法可以解决这个问题。 首先,检查代码中是否正确地定义了占位符张量“Placeholder”,以确保它的形状和数据类型与输入数据一致。例如,如果你的“Placeholder”占位符应该接受形状为[?,1]的float数据类型,那么你需要在代码中明确指定这个占位符的属性。 然后,在执行会话的时候,确保为占位符张量“Placeholder”提供了正确的输入数据。可以通过 feed_dict 参数将数据传递给占位符张量。在 feed_dict 中,你需要用正确的形状和数据类型提供输入数据,以适配“Placeholder”张量。 最后,检查输入数据的维度和形状是否正确。在错误信息中,[?,1]表示你的输入数据的形状应为为一个列向量(n行,1列),其中“?”表示行数不确定。 总之,要解决这个错误,需要检查占位符定义、输入数据的正确性以及维度和形状的一致性。确保正确地提供数据和形状,以适配占位符张量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值