tensorflow将标签向量转换为;“多个热编码器”;
tensorflow是否有可能(以一种很好的方式)实现下一个功能: 假设我们有一个密集的标签向量tensorflow将标签向量转换为;“多个热编码器”;,tensorflow,Tensorflow,tensorflow是否有可能(以一种很好的方式)实现下一个功能: 假设我们有一个密集的标签向量 labels = [0,3,1,2,0] 我需要做一个“多热编码器”。也就是说,对于每一行,我需要1到标签的索引减去1 因此,所需的结果将是 [[0, 0, 0], [1, 1, 1], [0, 0, 1], [0, 1, 1], [0, 0, 0]] 谢谢您可以使用tf.nn.embeddings\u查找来完成此操作,如下所示: embeddings = tf.constant([[0
labels = [0,3,1,2,0]
我需要做一个“多热编码器”。也就是说,对于每一行,我需要1到标签的索引减去1
因此,所需的结果将是
[[0, 0, 0],
[1, 1, 1],
[0, 0, 1],
[0, 1, 1],
[0, 0, 0]]
谢谢您可以使用tf.nn.embeddings\u查找来完成此操作,如下所示:
embeddings = tf.constant([[0,0,0], [0,0,1], [0,1,1], [1,1,1]])
labels = [0,3,1,2,0]
encode_tensors = tf.nn.embedding_lookup(embeddings,labels)
sess.run的输出(编码张量):
希望这有帮助 完成:
也可以使用:
In [397]: labels = np.array([1, 2, 0, 3, 0])
In [398]: sess.run(tf.sequence_mask(labels, 3, dtype=tf.int8))
Out[398]:
array([[1, 0, 0],
[1, 1, 0],
[0, 0, 0],
[1, 1, 1],
[0, 0, 0]], dtype=int8)
结果矩阵将与我所问的相反
In [397]: labels = np.array([1, 2, 0, 3, 0])
In [398]: sess.run(tf.sequence_mask(labels, 3, dtype=tf.int8))
Out[398]:
array([[1, 0, 0],
[1, 1, 0],
[0, 0, 0],
[1, 1, 1],
[0, 0, 0]], dtype=int8)