Open In App

One Hot Encoding using Tensorflow

Improve
Improve
Like Article
Like
Save
Share
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