返回Theano向量中值的索引

Chr*_*eck 3 python theano

Theano中返回Vector中特定值的索引的过程是什么?在NumPy中,该值为numpy.where(my_array==x)。Theano Tensor.where是一个switch语句。

nou*_*uiz 5

numpy.where(condition,[x,y])有2个行为。Theano始终支持您为where()提供3个参数。如NumPy doc [1]中所述,numpy.where(cond)等效于nonzero()。

您可以在Theano中这样做:

import theano
import numpy as np
v = np.arange(10)
var = theano.tensor.vector()
out = theano.tensor.eq(var, 2).nonzero()[0]
print out.eval({var: v})
Run Code Online (Sandbox Code Playgroud)

检查第5行。NumPy nonzero()返回一个元组。Theano也做同样的事情。在nonzero()的输入中,每个维度的元组中都有一个向量。

[1] http://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html