2015-07-11 9 views
11

Paylaşılan bir değişkeni yayınlamaktan oluşturulmuş bir teano tensör değişkeni var. Orijinal veya döküm değerleri nasıl çıkarabilirim? (Ben bu yüzden etrafta orijinal paylaşılan/numpy değerleri taşımak zorunda kalmamasıdır gerekir.)Paylaşılan değişken tarafından desteklenen bir teano tensör değişkeninden nasıl değer alınır?

>>> 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.]) 

cevap

13

get_value yalnızca paylaşılan değişkenler için çalışır. TensorVariables genel ifadelerdir ve bu nedenle değerlerini belirleyebilmek için potansiyel olarak ekstra girişe gereksinim duyarsınız (z'un başka bir tensör değişkeni olduğu y = x + z'u ayarladığınızı düşünün. 'u y hesaplanmadan önce belirtmeniz gerekir). Bu girdiyi sağlamak için bir işlev oluşturabilir veya eval yöntemini kullanarak bir sözlükte sağlayabilirsiniz. Senin durumunda

, y sadece x bağlıdır, bu nedenle

import theano 
import theano.tensor as T 

x = theano.shared(numpy.asarray([1, 2, 3], dtype='float32')) 
y = T.cast(x, 'int32') 
y.eval() 

yapabilir ve

array([1, 2, 3], dtype=int32) 

(Ve durumunda y = x + z yılında, yapmanız gerekir işte sonucu görmelisiniz y.eval({z : 3.}), örneğin)

İlgili konular