2013-11-27 57 views
5

我試圖找到在theano的矩陣元素明智地找到 s=max(ele, 0)的值。 我對theano沒有太多經驗。Theano元素明智的最大值

到目前爲止,我有

x = theano.tensor.dmatrix('x') 
s = (x + abs(x))/2 # poor man's trick 
linmax = function([x], s) 

這工作,但不漂亮,我想我應該能夠使用theano.tensor.maximum這一點。

在Matlab中,做我想做的事,我只想寫 [email protected](x) max (x, zeros (size (x)))

回答

8

這個工作對我來說:

import theano.tensor as T 
from theano import function 

x = T.dmatrix('x') 
linmax = function([x], T.maximum(x,0)) 

測試:

linmax([[-1,-2],[3,4]]) 

輸出:

array([[0.,0.],[3.,4.]]) 
+1

注意:'T.max()'和'T.maximum()'不等價。花了一段時間才明白! –

2

我看到這個實現爲

s = x*(x>0) 

幾次。不知道這是否快於T.maximum()