【发布时间】:2014-07-24 03:42:06
【问题描述】:
有没有办法对 Theano 张量中的值进行阈值处理?例如,如果v = t.vector(),我想创建另一个张量w,它包含与v相同的值,除了超过某个阈值T的值被T本身替换:
v = [1, 2, 3, 100, 200, 300]
T = 100
w = [1, 2, 3, 100, 100, 100]
更一般地说,有什么标准框架可以在张量上创建自己的操作?
【问题讨论】:
标签: 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]
更一般地说,有什么标准框架可以在张量上创建自己的操作?
【问题讨论】:
标签: theano
这是执行此操作的代码。使用剪辑功能。
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.])
【讨论】: