我正在尝试获取给定布尔值的向量的最大值。
使用 Numpy:
>>> this = np.arange(10)
>>> this[~(this>=5)].max()
4
但是对于 Theano:
>>> that = T.arange(10, dtype='int32')
>>> that[~(that>=5)].max().eval()
9
>>> that[~(that>=5).nonzero()].max().eval()
Traceback (most recent call last):
File "<pyshell#146>", line 1, in <module>
that[~(that>=5).nonzero()].max().eval()
AttributeError: 'TensorVariable' object has no attribute 'nonzero'
为什么会这样?这是我缺少的细微差别吗?