title: InvalidArgumentError: You must feed a value for placeholder tensor 'Placeholder' with dtype float and shape [1000,625]
body: <p>I get the above unexpected error when trying to run this code:</p>
  
  <pre><code># -*- coding: utf-8 -*-
  """
  Created on Fri Jun 24 10:38:04 2016
  
  @author: andrea
  """
  
  # pylint: disable=missing-docstring
  from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  
  import time
  
  from six.moves import xrange  # pylint: disable=redefined-builtin
  import tensorflow as tf
  from pylab import *
  import argparse
  import mlp
  
  # Basic model parameters as external flags.
  tf.app.flags.FLAGS = tf.python.platform.flags._FlagValues()
  tf.app.flags._global_parser = argparse.ArgumentParser()
  flags = tf.app.flags
  FLAGS = flags.FLAGS
  flags.DEFINE_float('learning_rate', 0.01, 'Initial learning rate.')
  flags.DEFINE_integer('max_steps', 20, 'Number of steps to run trainer.')
  flags.DEFINE_integer('batch_size', 1000, 'Batch size. Must divide evenly into the dataset sizes.')
  flags.DEFINE_integer('num_samples', 100000, 'Total number of samples. Needed by the reader')
  flags.DEFINE_string('training_set_file', 'godzilla_dataset_size625', 'Training set file')
  flags.DEFINE_string('test_set_file', 'godzilla_testset_size625', 'Test set file')
  flags.DEFINE_string('test_size', 1000, 'Test set size')
  
  
  def placeholder_inputs(batch_size):
  
      images_placeholder = tf.placeholder(tf.float32, shape=(batch_size, mlp.NUM_INPUT))
      labels_placeholder = tf.placeholder(tf.float32, shape=(batch_size, mlp.NUM_OUTPUT))
      return images_placeholder, labels_placeholder
  
  
  def fill_feed_dict(data_set_file, images_pl, labels_pl):
  
      for l in range(int(FLAGS.num_samples/FLAGS.batch_size)):
          data_set = genfromtxt("../dataset/" + data_set_file, skip_header=l*FLAGS.batch_size, max_rows=FLAGS.batch_size)
          data_set = reshape(data_set, [FLAGS.batch_size, mlp.NUM_INPUT + mlp.NUM_OUTPUT])
          images = data_set[:, :mlp.NUM_INPUT]
          labels_feed = reshape(data_set[:, mlp.NUM_INPUT:], [FLAGS.batch_size, mlp.NUM_OUTPUT])
          images_feed = reshape(images, [FLAGS.batch_size, mlp.NUM_INPUT])
  
          feed_dict = {
              images_pl: images_feed,
              labels_pl: labels_feed,
          }
  
          yield feed_dict
  
  def reader(data_set_file, images_pl, labels_pl):
  
      data_set = loadtxt("../dataset/" + data_set_file)
      images = data_set[:, :mlp.NUM_INPUT]
      labels_feed = reshape(data_set[:, mlp.NUM_INPUT:], [data_set.shape[0], mlp.NUM_OUTPUT])
      images_feed = reshape(images, [data_set.shape[0], mlp.NUM_INPUT])
  
      feed_dict = {
          images_pl: images_feed,
          labels_pl: labels_feed,
      }
  
      return feed_dict, labels_pl
  
  
  def run_training():
  
      tot_training_loss = []
      tot_test_loss = []
      tf.reset_default_graph()
      with tf.Graph().as_default() as g:
          images_placeholder, labels_placeholder = placeholder_inputs(FLAGS.batch_size)    
          test_images_pl, test_labels_pl = placeholder_inputs(FLAGS.test_size)
          logits = mlp.inference(images_placeholder)      
          test_pred = mlp.inference(test_images_pl, reuse=True)
          loss = mlp.loss(logits, labels_placeholder)
          test_loss = mlp.loss(test_pred, test_labels_pl)
          train_op = mlp.training(loss, FLAGS.learning_rate)
  
          #summary_op = tf.merge_all_summaries()
  
          init = tf.initialize_all_variables()
  
          saver = tf.train.Saver()
          sess = tf.Session()
          #summary_writer = tf.train.SummaryWriter("./", sess.graph)
  
          sess.run(init)
          test_feed, test_labels_placeholder = reader(FLAGS.test_set_file, test_images_pl, test_labels_pl)
  
          # Start the training loop.
          for step in xrange(FLAGS.max_steps):
              start_time = time.time()
              feed_gen = fill_feed_dict(FLAGS.training_set_file, images_placeholder, labels_placeholder)
              i=1
              for feed_dict in feed_gen:
                  _, loss_value = sess.run([train_op, loss], feed_dict=feed_dict)
                  _, test_loss_val = sess.run([test_pred, test_loss], feed_dict=test_feed)
                  tot_training_loss.append(loss_value)
                  tot_test_loss.append(test_loss_val)
                  #if i % 10 == 0:
                  #print('%d minibatches analyzed...'%i)
                  i+=1
  
              if step % 1 == 0:        
                  duration = time.time() - start_time
                  print('Epoch %d (%.3f sec):\n training loss = %f \n test loss = %f ' % (step, duration, loss_value, test_loss_val))
  
          predictions = sess.run(test_pred, feed_dict=test_feed)
          savetxt("predictions", predictions)
          savetxt("training_loss", tot_training_loss)
          savetxt("test_loss", tot_test_loss)
          plot(tot_training_loss)    
          plot(tot_test_loss)
          figure()
          scatter(test_feed[test_labels_placeholder], predictions)
  
    #plot([.4, .6], [.4, .6])
  
  run_training()
  
  
  #if __name__ == '__main__':
  #  tf.app.run()
  </code></pre>
  
  <p>this is mlp:</p>
  
  <pre><code>from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  
  import math
  
  import tensorflow as tf
  
  NUM_OUTPUT = 1
  NUM_INPUT = 625
  NUM_HIDDEN = 5
  
  def inference(images, reuse=None):
      with tf.variable_scope('hidden1', reuse=reuse):
          weights = tf.get_variable(name='weights', shape=[NUM_INPUT, NUM_HIDDEN], initializer=tf.contrib.layers.xavier_initializer())
          weight_decay = tf.mul(tf.nn.l2_loss(weights), 0.00001, name='weight_loss')
          tf.add_to_collection('losses', weight_decay)
          biases = tf.Variable(tf.constant(0.0, name='biases', shape=[NUM_HIDDEN]))
          hidden1_output = tf.nn.relu(tf.matmul(images, weights)+biases, name='hidden1')
  
      with tf.variable_scope('output', reuse=reuse):
          weights = tf.get_variable(name='weights', shape=[NUM_HIDDEN, NUM_OUTPUT], initializer=tf.contrib.layers.xavier_initializer())
          weight_decay = tf.mul(tf.nn.l2_loss(weights), 0.00001, name='weight_loss')
          tf.add_to_collection('losses', weight_decay)
          biases = tf.Variable(tf.constant(0.0, name='biases', shape=[NUM_OUTPUT]))
          output = tf.nn.relu(tf.matmul(hidden1_output, weights)+biases, name='output')
  
      return output
  
  def loss(outputs, labels):
  
    rmse = tf.sqrt(tf.reduce_mean(tf.square(tf.sub(labels, outputs))), name="rmse")
    tf.add_to_collection('losses', rmse)
    return tf.add_n(tf.get_collection('losses'), name='total_loss')
  
  
  def training(loss, learning_rate):
  
    tf.scalar_summary(loss.op.name, loss)
    optimizer = tf.train.GradientDescentOptimizer(learning_rate)
    global_step = tf.Variable(0, name='global_step', trainable=False)
    train_op = optimizer.minimize(loss, global_step=global_step)
    return train_op
  </code></pre>
  
  <p>here the error:</p>
  
  <pre><code>Traceback (most recent call last):
  
    File "&lt;ipython-input-1-f16dfed3b99b&gt;", line 1, in &lt;module&gt;
      runfile('/home/andrea/test/python/main_mlp_yield.py', wdir='/home/andrea/test/python')
  
    File "/usr/local/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 714, in runfile
      execfile(filename, namespace)
  
    File "/usr/local/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 81, in execfile
      builtins.execfile(filename, *where)
  
    File "/home/andrea/test/python/main_mlp_yield.py", line 127, in &lt;module&gt;
      run_training()
  
    File "/home/andrea/test/python/main_mlp_yield.py", line 105, in run_training
      _, test_loss_val = sess.run([test_pred, test_loss], feed_dict=test_feed)
  
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 372, in run
      run_metadata_ptr)
  
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 636, in _run
      feed_dict_string, options, run_metadata)
  
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 708, in _do_run
      target_list, options, run_metadata)
  
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 728, in _do_call
      raise type(e)(node_def, op, message)
  
  InvalidArgumentError: You must feed a value for placeholder tensor 'Placeholder' with dtype float and shape [1000,625]
       [[Node: Placeholder = Placeholder[dtype=DT_FLOAT, shape=[1000,625], _device="/job:localhost/replica:0/task:0/cpu:0"]()]]
  Caused by op u'Placeholder', defined at:
    File "/usr/local/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/start_ipython_kernel.py", line 205, in &lt;module&gt;
      __ipythonkernel__.start()
    File "/usr/local/lib/python2.7/dist-packages/ipykernel/kernelapp.py", line 442, in start
      ioloop.IOLoop.instance().start()
    File "/usr/local/lib/python2.7/dist-packages/zmq/eventloop/ioloop.py", line 162, in start
      super(ZMQIOLoop, self).start()
    File "/usr/local/lib/python2.7/dist-packages/tornado/ioloop.py", line 883, in start
      handler_func(fd_obj, events)
    File "/usr/local/lib/python2.7/dist-packages/tornado/stack_context.py", line 275, in null_wrapper
      return fn(*args, **kwargs)
    File "/usr/local/lib/python2.7/dist-packages/zmq/eventloop/zmqstream.py", line 440, in _handle_events
      self._handle_recv()
    File "/usr/local/lib/python2.7/dist-packages/zmq/eventloop/zmqstream.py", line 472, in _handle_recv
      self._run_callback(callback, msg)
    File "/usr/local/lib/python2.7/dist-packages/zmq/eventloop/zmqstream.py", line 414, in _run_callback
      callback(*args, **kwargs)
    File "/usr/local/lib/python2.7/dist-packages/tornado/stack_context.py", line 275, in null_wrapper
      return fn(*args, **kwargs)
    File "/usr/local/lib/python2.7/dist-packages/ipykernel/kernelbase.py", line 276, in dispatcher
      return self.dispatch_shell(stream, msg)
    File "/usr/local/lib/python2.7/dist-packages/ipykernel/kernelbase.py", line 228, in dispatch_shell
      handler(stream, idents, msg)
    File "/usr/local/lib/python2.7/dist-packages/ipykernel/kernelbase.py", line 391, in execute_request
      user_expressions, allow_stdin)
    File "/usr/local/lib/python2.7/dist-packages/ipykernel/ipkernel.py", line 199, in do_execute
      shell.run_cell(code, store_history=store_history, silent=silent)
    File "/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 2723, in run_cell
      interactivity=interactivity, compiler=compiler, result=result)
    File "/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 2831, in run_ast_nodes
      if self.run_code(code, result):
    File "/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 2885, in run_code
      exec(code_obj, self.user_global_ns, self.user_ns)
    File "&lt;ipython-input-1-f16dfed3b99b&gt;", line 1, in &lt;module&gt;
      runfile('/home/andrea/test/python/main_mlp_yield.py', wdir='/home/andrea/test/python')
    File "/usr/local/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 714, in runfile
      execfile(filename, namespace)
    File "/usr/local/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 81, in execfile
      builtins.execfile(filename, *where)
    File "/home/andrea/test/python/main_mlp_yield.py", line 127, in &lt;module&gt;
      run_training()
    File "/home/andrea/test/python/main_mlp_yield.py", line 79, in run_training
      images_placeholder, labels_placeholder = placeholder_inputs(FLAGS.batch_size)
    File "/home/andrea/test/python/main_mlp_yield.py", line 37, in placeholder_inputs
      images_placeholder = tf.placeholder(tf.float32, shape=(batch_size, mlp.NUM_INPUT))
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/array_ops.py", line 895, in placeholder
      name=name)
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_array_ops.py", line 1238, in _placeholder
      name=name)
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/op_def_library.py", line 704, in apply_op
      op_def=op_def)
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2260, in create_op
      original_op=self._default_original_op, op_def=op_def)
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1230, in __init__
      self._traceback = _extract_stack()
  </code></pre>
  
  <p>I really don't understand why. It looks to me that I'm feeding all the placeholders before using them. I also removed the "merge_all_summaries" since this problem is similar to other (<a href="https://stackoverflow.com/questions/35413618/tensorflow-placeholder-error-when-using-tf-merge-all-summaries">this</a> and <a href="https://stackoverflow.com/questions/35114376/error-when-computing-summaries-in-tensorflow">this</a>), but it didn't help</p>
  
  <p>EDIT: training data: 100000 samples x 625 features
  test data: 1000 samples x 625 features
  num. output: 1</p>