在Theano中进行阈值处理

时间:2014-07-23 18:14:30

标签: theano

有没有办法对Theano张量值进行阈值处理?例如,如果v = t.vector(),我想创建另一个张量w,其中包含与v相同的值,但超出特定阈值T的张量将被替换由T本身:

v = [1, 2, 3, 100, 200, 300]
T = 100
w = [1, 2, 3, 100, 100, 100]

更一般地说,有什么标准框架可以在张量上创建自己的操作?

1 个答案:

答案 0 :(得分:3)

这是执行此操作的代码。使用剪辑功能。

import theano
v = theano.tensor.vector()
f = theano.function([v], theano.tensor.clip(v, 0, 100))
f([1, 2, 3, 100, 200, 300])
# array([   1.,    2.,    3.,  100.,  100.,  100.])

如果你不想要分钟,你可以使用开关:

import theano
v = theano.tensor.vector()
f = theano.function([v], theano.tensor.clip(v, 0, 100))
f([1, 2, 3, 100, 200, 300])
# array([   1.,    2.,    3.,  100.,  100.,  100.])
f = theano.function([v], theano.tensor.switch(v<100, v, 100))
f([1, 2, 3, 100, 200, 300])
# array([   1.,    2.,    3.,  100.,  100.,  100.])