ML Community Day is November 9! Join us for updates from TensorFlow, JAX, and more Learn more


Inserts a placeholder for a tensor that will be always fed.

Migrate to TF2

This API is not compatible with eager execution and tf.function. To migrate to TF2, rewrite the code to be compatible with eager execution. Check the migration guide on replacing calls. In TF2, you can just pass tensors directly into ops and layers. If you want to explicitly set up your inputs, also see Keras functional API on how to use tf.keras.Input to replace tf.compat.v1.placeholder. tf.function arguments also do the job of tf.compat.v1.placeholder. For more details please read Better performance with tf.function.


Used in the notebooks

Used in the guide Used in the tutorials

For example:

x = tf.compat.v1.placeholder(tf.float32, shape=(1024, 1024))
y = tf.matmul(x, x)

with tf.compat.v1.Session() as sess:
  print(  # ERROR: will fail because x was not fed.

  rand_array = np.random.rand(1024, 1024)
  print(, feed_dict={x: rand_array}))  # Will succeed.

dtype The type of elements in the tensor to be fed.
shape The shape of the tensor to be fed (optional). If the shape is not specified, you can feed a tensor of any shape.
name A name for the operation (optional).

A Tensor that may be used as a handle for feeding a value, but not evaluated directly.

RuntimeError if eager execution is enabled