3
假设我有以下的张量t
为SOFTMAX函数的输出:Softmax矩阵到0/1(OneHot)编码矩阵?
t = tf.constant(value=[[0.2,0.8], [0.6, 0.4]])
>> [ 0.2, 0.8]
[ 0.6, 0.4]
现在,我想这个矩阵t
转换成类似于OneHot编码矩阵的矩阵:
Y.eval()
>> [ 0, 1]
[ 1, 0]
我熟悉c = tf.argmax(t)
这会给我指数t
,应该是1.但从c
到Y
似乎相当困难。
我已经尝试过使用c
被转换t
至tf.SparseTensor
,然后使用tf.sparse_tensor_to_dense()
得到Y
。但是,这种转换涉及相当多的步骤,而且看起来对于这项任务来说是过分的 - 我甚至没有完成它,但我相信它可以工作。
是否有任何更适当的/简单的方法来做这个转换,我缺少。
我需要这个的原因是因为我有一个Python自定义OneHot编码器,我可以喂Y
。 tf.one_hot()
不够广泛 - 不允许自定义编码。
相关问题:
这太明显了!真的感到沮丧,因为没有看到更快。我认为你是对的。虽然'tf.one_hot()'是为了分类,而不是为索引分配1,但它似乎实际上做了后者(从我的有限测试中)以及指定深度。谢谢! –