Tôi đang cố gắng tối đa hóa một vectơ cho một giá trị boolean.Theano: Tại sao việc lập chỉ mục thất bại trong trường hợp này?
Với NumPy:
>>> this = np.arange(10)
>>> this[~(this>=5)].max()
4
Nhưng với 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'
Tại sao điều này xảy ra? Đây có phải là một sắc thái tinh tế mà tôi đang thiếu?
Vâng, traceback đen cho thứ hai của bạn đang nói rằng mảng không có khác không() 'phương pháp'/thuộc tính, vì vậy bạn không thể sử dụng nó theo cùng cách mà bạn sẽ sử dụng một mảng numpy. –
@JeffTratner: Phản đối [ví dụ] (http://deeplearning.net/software/theano/library/tensor/basic.html#indexing) được cung cấp trên trang web ... –
@NoobSailbot bạn đang sử dụng đúng phiên bản? –