如何在Theano中进行0/1子集化?

时间:2016-04-08 13:24:42

标签: python syntax subset theano matrix-indexing

目标是通过另一个数组中提供的值获取元素数组的子集。

import theano
import theano.tensor as T

a = T.vector('X', dtype='int64')
b = T.vector('Y', dtype='int64')
c = a[b]
g = function([a,b],c)

x = np.array([5,3,2,3,4,6], dtype=int)
y = np.array([0,0,1,0,0,1], dtype=int)
print g(x,y)

打印

[5 5 3 5 5 3]

而不是

[2 6]

如何获得预期结果?

1 个答案:

答案 0 :(得分:1)

尝试使用nonzero()功能。

案例中的例子:

import theano
import theano.tensor as T

a = T.vector('X', dtype='int64')
b = T.vector('Y', dtype='int64')
c = a[b.nonzero()]
g = function([a,b],c)

x = np.array([5,3,2,3,4,6], dtype=int)
y = np.array([0,0,1,0,0,1], dtype=int)
print g(x,y)

希望有所帮助