2013-11-27 54 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()