Open In App

One Hot Encoding using Tensorflow

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

In this post, we will be seeing how to initialize a vector in TensorFlow with all zeros or ones. The function you will be calling is tf.ones(). To initialize with zeros you could use tf.zeros() instead. These functions take in a shape and return an array full of zeros and ones accordingly.

Code:




import tensorflow as tf
  
ones_matrix = tf.ones([2, 3])
sess = tf.Session()
ones = sess.run(ones_matrix)
sess.close()
  
print(ones)


Output:

[[1. 1. 1.]  [1. 1. 1.]]

Using One Hot Encoding:
Many times in deep learning and general vector computations you will have a y vector with numbers ranging from 0 to C-1 and you want to do the following conversion. If C is for example 5, then you might have the following y vector which you will need to convert as follows:

One Hot Encoding Example

This can be done as follows:

Parameters passed to the function:

indices: A Tensor of indices.
depth: A scalar defining the depth of the one hot dimension.
on_value: A scalar defining the value to fill in output when indices[j] = i. (default : 1)
off_value: A scalar defining the value to fill in output when indices[j] != i. (default : 0)
axis: The axis to fill (default : -1, a new inner-most axis).
dtype: The data type of the output tensor.
name: A name for the operation (optional).

Code:




indices = [1, 4, 2, 0, 3]
C = tf.constant(5, name = "C")
      
one_hot_matrix = tf.one_hot(
    indices, C, on_value = 1.0, off_value = 0.0, axis =-1)
  
sess = tf.Session()
  
one_hot = sess.run(one_hot_matrix)
  
sess.close()
  
# output is of dimension 5 x 5
print(one_hot)


Output:

[[0.0, 1.0, 0.0, 0.0, 0.0 ]

[0.0, 0.0, 0.0, 0.0, 1.0]

[0.0, 0.0, 1.0, 0.0, 0.0]

[1.0, 0.0, 0.0, 0.0, 0.0]

[0.0, 0.0, 0.0, 1.0, 0.0]]

Feel free to change values and see the result.

Code:




indices = [[0, 2], [1, -1]]
C = tf.constant(5, name = "C")
      
one_hot_matrix = tf.one_hot(
    indices, C, on_value = 1.0, off_value = 0.0, axis =-1)
  
sess = tf.Session()
  
one_hot = sess.run(one_hot_matrix)
  
sess.close()
      
# output is of dimension 2 x 2 x 3
print(one_hot) 


Output :

[[[1.0, 0.0, 0.0],  

  [0.0, 0.0, 1.0]],  

 [[0.0, 1.0, 0.0],  

 [0.0, 0.0, 0.0]]] 


Last Updated : 02 Sep, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads