从值矩阵转换为 3d 张量中同一事物的一个热表示的最简单/最智能的方法是什么?例如,如果矩阵是张量中 argmax 之后的索引,例如:
indices=numpy.argmax(mytensor,axis=2)
其中张量是 3D [x,y,z],索引自然是 [x,y]。现在您想要访问一个 3D [x,y,z] 张量,该张量在 axis=2 中的最大值处用 1 代替,在任何其他位置处用 0 代替。
附注我知道向量到 1-hot 矩阵的答案,但这是矩阵到 1-hot 张量。
最佳答案
最适合使用的设置之一 broadcasting
-
indices[...,None] == np.arange(mytensor.shape[-1])
如果您需要 0s
和 1s
的整数,请附加 .astype(int)
关于python - numpy 中矩阵的 One-hot 表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41513252/