📜  使用 TensorFlow 的一种热编码

📅  最后修改于: 2022-05-13 01:54:36.422000             🧑  作者: Mango

使用 TensorFlow 的一种热编码

在这篇文章中,我们将看到如何在 TensorFlow 中使用全零或一来初始化向量。您将调用的函数是tf.ones() 。要使用零初始化,您可以使用tf.zeros()代替。这些函数采用一个形状并相应地返回一个充满零和一的数组。

代码:

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

输出:

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

使用一种热编码:
很多时候,在深度学习和一般向量计算中,您将拥有一个数字范围从 0 到 C-1 的向量,并且您想要进行以下转换。如果 C 是例如 5,那么您可能有以下 y 向量,您需要将其转换如下:

一个热编码示例

这可以按如下方式完成:

传递给函数的参数:

代码:

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)

输出:

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

随意更改值并查看结果。

代码:

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) 

输出 :

[[[1.0, 0.0, 0.0],  

  [0.0, 0.0, 1.0]],  

 [[0.0, 1.0, 0.0],  

 [0.0, 0.0, 0.0]]]