Skip to content
Related Articles

Related Articles

Placeholders in Tensorflow

View Discussion
Improve Article
Save Article
  • Last Updated : 18 Mar, 2022

A placeholder is a variable in Tensorflow to which data will be assigned sometime later on. It enables us to create processes or operations without the requirement for data. Data is fed into the placeholder as the session starts, and the session is run. We can feed in data into tensorflow graphs using placeholders. 

Syntax: tf.compat.v1.placeholder(dtype, shape=None, name=None)

Parameters:

  • dtype: the datatype of the elements in the tensor that will be fed.
  • shape : by default None. The tensor’s shape that will be fed , it is an optional parameter. One can feed a tensor of any shape if the shape isn’t specified.
  • name: by default None. The operation’s name , optional parameter.

Returns:

A Tensor that can be used to feed a value but cannot be evaluated directly.

Example 1: 

Python3




# importing packages
import tensorflow.compat.v1 as tf
  
# disabling eager mode
tf.compat.v1.disable_eager_execution()
  
# creating a placeholder
a = tf.placeholder(tf.float32, None)
  
# creating an operation
b = a + 10
  
# creating a session
with tf.Session() as session:
    
    # feeding data in the placeholder
    operation_res = session.run(b, feed_dict={a: [10, 20, 30, 40]})
    print("after executing the operation: " + str(operation_res))

Output:

after executing the operation: [20. 30. 40. 50.]

Explanation:

  • Eager mode is disabled in case there are any errors. 
  • A placeholder is created using tf.placeholder() method which has a dtype ‘tf.float32’, None says we didn’t specify any size. 
  • Operation is created before feeding in data. 
  • The operation adds 10 to the tensor. 
  • A session is created and started using tf.Session(). 
  • Session.run takes the operation we created and data to be fed as parameters and it returns the result.

Example 2:

Python3




# importing packages
import tensorflow.compat.v1 as tf
  
# disabling eager mode
tf.compat.v1.disable_eager_execution()
  
# creating a tensorflow graph
graph = tf.Graph()
with graph.as_default():
    
    # creating a placeholder
    a = tf.placeholder(tf.float64, shape=(3, 3), name='tensor1')
      
    # creating an operation
    b = a ** 2
  
# array1 will be fed into 'a'
array1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  
# Creating a session, and running the graph
with tf.Session(graph=graph) as session:
      
    # run the session until it reaches node b,
    # then input an array of values into a
    operation_res = session.run(b, feed_dict={a: array1})
    print("after executing the operation: ")
    print(operation_res)

Output:

after executing the operation: 
[[ 1.  4.  9.]
 [16. 25. 36.]
 [49. 64. 81.]]

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!