、私はブール配列を持っている場合、私は別の配列の要素を選択するためにそれを使用することができます:Theanoテンソルスライス...どのようにスライスするためにブール値を使用するのですか? numpyので
>>> import numpy as np
>>> x = np.array([1, 2, 3])
>>> idx = np.array([True, False, True])
>>> x[idx]
array([1, 3])
私はtheanoでこれを行う必要があります。これは私が試したものですが、私は予期しない結果を得ました。
>>> from theano import tensor as T
>>> x = T.vector()
>>> idx = T.ivector()
>>> y = x[idx]
>>> y.eval({x: np.array([1,2,3]), idx: np.array([True, False, True])})
array([ 2., 1., 2.])
誰かがtheanoの結果を説明し、numpyの結果を得る方法を提案できますか?私はtheano関数宣言で 'givens'引数を適切にインスタンス化するためにこれを行う方法を知る必要があります。前もって感謝します。
を必要とするあなたは 'です[ '[True、False、True]は' [0、1、0] 'と解釈されたので、1,2,1,2]' – Eric
ありがとう!私はあなたが何を意味するかを見ます:[真、偽、真]は[1,0,1]と評価します。あなたはそれをnumpyの結果に評価させる方法を知っていますか? numpyのようなブーリアンスライシングを行う方法はありますか? – matlibplotter
おっと、そういうわけで、0と1を入れ替えてみました。私の答えを参照してください – Eric