微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – Softmax矩阵到0/1(OneHot)编码矩阵?

假设我有以下张量作为softmax函数输出

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似乎很难.

我已经尝试过将t转换为tf.SparseTensor然后使用c然后使用tf.sparse_tensor_to_dense()来获得Y.但是这个转换涉及相当多的步骤并且对于任务来说似乎有点过头了 – 我甚至没有完成它但是我是确定它可以工作.

有没有更合适/简单的方法来进行我失踪的转换.

我需要这个的原因是因为我在Python中有一个自定义OneHot编码器,我可以提供Y. tf.one_hot()不够广泛 – 不允许自定义编码.

相关问题:

> Adjust Single Value within Tensor — TensorFlow

最佳答案:

为什么不将tf.argmax()与tf.one_hot()结合起来.

Y = tf.one_hot(tf.argmax(t,dimension = 1),depth = 2)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐