共有変数をキャストして作成したtheanoテンソル変数があります。元の値またはキャストされた値を抽出するにはどうすればよいですか? (私はそれを必要とするので、元のshared/numpy値を持ち歩く必要はありません。)
>>> x = theano.shared(numpy.asarray([1, 2, 3], dtype='float'))
>>> y = theano.tensor.cast(x, 'int32')
>>> y.get_value(borrow=True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'TensorVariable' object has no attribute 'get_value'
# whereas I can do this against the original shared variable
>>> x.get_value(borrow=True)
array([ 1., 2., 3.])
_get_value
_はシェア変数に対してのみ機能します。 TensorVariables
は一般的な式であるため、値を決定するために追加の入力が必要になる可能性があります(_y = x + z
_を設定するとします。ここで、z
は別のテンソル変数です。次のようにする必要があります。 z
を計算する前にy
を指定します)。この入力を提供する関数を作成するか、eval
メソッドを使用して辞書に入力することができます。
あなたの場合、y
はx
にのみ依存するので、
_import theano
import theano.tensor as T
x = theano.shared(numpy.asarray([1, 2, 3], dtype='float32'))
y = T.cast(x, 'int32')
y.eval()
_
そして、あなたは結果を見るはずです
_array([1, 2, 3], dtype=int32)
_
(そして、_y = x + z
_の場合、たとえばy.eval({z : 3.})
を実行する必要があります)