假设我有以下张量:
T = [[0.1, 0.3, 0.7],
[0.2, 0.5, 0.3],
[0.1, 0.1, 0.8]]
我想将其转换为单热张量,使得尺寸为0的最大值的索引设置为1,所有其他索引设置为零,如下所示:
T_onehot = [[0, 0, 1],
[0, 1, 0],
[0, 0, 1]]
我知道有tf.argmax
来获取张量中最大元素的索引,但是有没有什么方法可以让我一步到位地做我想做的事情?
答案 0 :(得分:0)
我不知道是否有办法一步完成,但张量流中有one_hot
函数:
import tensorflow as tf
T = tf.constant([[0.1, 0.3, 0.7], [0.2, 0.5, 0.3], [0.1, 0.1, 0.8]])
T_onehot = tf.one_hot(tf.argmax(T, 1), T.shape[1])
tf.InteractiveSession()
print(T_onehot.eval())
# [[ 0. 0. 1.]
# [ 0. 1. 0.]
# [ 0. 0. 1.]]