InvalidArgumentError: You must feed a value for placeholder tensor 'Placeholder' with dtype float and shape [1000,625]
<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>