Open In App

Placeholders in Tensorflow

Improve
Improve
Like Article
Like
Save
Share
Report

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.]]


Last Updated : 18 Mar, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads