有没有办法对Theano张量值进行阈值处理?例如,如果v = t.vector()
,我想创建另一个张量w
,其中包含与v
相同的值,但超出特定阈值T
的张量将被替换由T
本身:
v = [1, 2, 3, 100, 200, 300]
T = 100
w = [1, 2, 3, 100, 100, 100]
更一般地说,有什么标准框架可以在张量上创建自己的操作?
答案 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.])