2013-07-03 7 views
34

का प्रिंट वैल्यू मैं एक थानो टेंसररिएबल के संख्यात्मक मूल्य को कैसे मुद्रित कर सकता हूं? मैं थानो के लिए नया हूं, इसलिए कृपया धैर्य रखें :)थानो - टेंसररिएबल

मेरे पास एक ऐसा कार्य है जहां मुझे y पैरामीटर के रूप में मिलता है। अब मैं कंसोल पर इस y के आकार को डीबग-प्रिंट करना चाहता हूं। का उपयोग

print y.shape 

परिणाम सांत्वना उत्पादन में (i संख्या उम्मीद कर रहा था, यानी (2,4,4)):

Shape.0 

या कैसे मैं उदाहरण के लिए निम्न कोड के संख्यात्मक परिणाम मुद्रित कर सकते हैं (यह मायने रखता है कि कितने y में मानों आधा अधिकतम से भी बड़ा) कर रहे हैं:

errorCount = T.sum(T.gt(T.abs_(y),T.max(y)/2.0)) 

errorCount क्योंकि एक भी नंबर होना चाहिए T.sum सभी मानों को जोड़ता है। एक थेनो चर

Sum.0 
+0

डॉक्स से - [ "मैं फ़ंक्शन/विधि में इंटरमीडिएट वैल्यू कैसे प्रिंट करूं?"] (Http://deeplearning.net/software/theano/tutorial/debug_faq.html#how-do-i-print-an-intermediate-value-in -ए-फ़ंक्शन-विधि) –

उत्तर

37

तो y एक थेनो चर रहा है, y.shape हो जाएगा: लेकिन

print errCount 

का उपयोग कर मुझे (उम्मीद 134 की तरह कुछ) देता है।

Shape.0 

आप अभिव्यक्ति y.shape का मूल्यांकन करना चाहते हैं, तो आप कर सकते हैं:: गणना करने के लिए

y.shape.eval() 

अगर y.shape इनपुट नहीं है, तो यह है कि

print y.shape 

वापसी सामान्य है स्वयं (यह केवल साझा चर और स्थिर पर निर्भर करता है)। अन्यथा, अगर yx थेनो चर पर निर्भर करते हैं आप इस तरह आदानों मूल्य पारित कर सकते हैं:

y.shape.eval(x=numpy.random.rand(...)) 

इस sum के लिए एक ही बात है। थेनो ग्राफ प्रतीकात्मक चर है जो गणना नहीं करते हैं जब तक कि आप इसे theano.function से संकलित न करें या eval() पर कॉल करें।

संपादित करें: प्रति docs, थेनो के नए संस्करण में वाक्य रचना

y.shape.eval({x: numpy.random.rand(...)}) 
13

भविष्य पाठकों के लिए है: पिछले जवाब काफी अच्छा है। लेकिन, मुझे 'tag.test_value' तंत्र डीबगिंग उद्देश्यों के लिए अधिक फायदेमंद (theano-debug-faq देखें) पाया:

from theano import config 
from theano import tensor as T 
config.compute_test_value = 'raise' 
import numpy as np  
#define a variable, and use the 'tag.test_value' option: 
x = T.matrix('x') 
x.tag.test_value = np.random.randint(100,size=(5,5)) 

#define how y is dependent on x: 
y = x*x 

#define how some other value (here 'errorCount') depends on y: 
errorCount = T.sum(y) 

#print the tag.test_value result for debug purposes! 
errorCount.tag.test_value 

मेरे लिए, यह बहुत अधिक उपयोगी है; उदाहरण के लिए, सही आयाम आदि की जांच

1

एक टेंसर परिवर्तनीय का प्रिंट मान।

क्या निम्नलिखित:

print tensor[dimension].eval() # इस सामग्री/मूल्य उस स्थिति में टेन्सर

उदाहरण में, एक 1 घ टेन्सर के लिए प्रिंट होगा:

print tensor[0].eval() 
+0

आंशिक उत्तर, है ना? – manetsus

संबंधित मुद्दे