我在Theano中有一個實數矩陣,我想要生成另一個矩陣,使得在新矩陣的每一列中都有一個1.0,否則爲0.0。 1.0應該指示輸入矩陣列中最大值的位置。如何使用Theano將列中的最大值替換爲1.0?
例如。
0.0 0.0 0.0 1.0
1.0 0.0 1.0 0.0
0.0 1.0 0.0 0.0
,我迄今使用的解決方案如下::
tmp = T.max(inp, axis = 0).dimshuffle('x',0)
out = T.switch(T.eq(tmp, inp), 1.0, 0.0)
如果下面的矩陣被用作輸入
1.0 2.0 3.0 5.0
2.1 0.0 4.0 0.0
0.0 3.0 1.0 4.0
下面的矩陣已到作爲輸出生成
此解決方案似乎可行,但我不確定它有多強大。主要關注的是我比較當前值是否等於剛好到列中的最大值。這是否會發生,由於一些「四捨五入」的錯誤,最大的價值不會被我們認出來?