假设我在Theano中有一个向量,而某些元素是case "result":
,我该如何删除它们?请考虑以下示例:
inf
根据Theano文档,这应该通过索引删除元素。但是,由于import numpy as np
import theano
from theano import tensor
vec = tensor.dvector('x')
fin = vec[(~tensor.isinf(vec)).nonzero()]
f = theano.function([vec], fin)
返回f([1,2,np.inf])
,情况并非如此。
如何执行此操作以便array([ 1., 2., inf])
返回f([1,2,np.inf])
?
答案 0 :(得分:2)
我找到了一个尴尬的解决方法
import theano
import theano.tensor as T
import numpy as np
vec = T.vector()
compare = T.isinf(vec)
out = vec[(1-compare).nonzero()]
v = [ 1., 1., 1., 1., np.inf, 3., 4., 5., 6., np.inf]
v = np.asarray(v)
out.eval({var:v})
array([ 1., 1., 1., 1., 3., 4., 5., 6.])
对于你的例子:
fin = vec[(1-T.isinf(vec)).nonzero()]
f = theano.function([vec], fin)
f([1,2,np.inf])
array([ 1., 2.])