नहीं, आप ग्राफ़ को चलाने (करने session.run()
) के बिना टेंसर की सामग्री को नहीं देख सकते हैं । केवल वही चीजें जो आप देख सकते हैं:
- टेंसर की गतिशीलता (लेकिन मुझे लगता है कि यह उन ऑपरेशनों की सूची के लिए गणना करना मुश्किल नहीं है जो TF है)
- ऑपरेशन के प्रकार जो टेंसर (
transpose_1:0
, random_uniform:0
) उत्पन्न करने के लिए उपयोग किए जाएंगे
- तत्वों के प्रकार में टेंसर (
float32
)
मैंने इसे दस्तावेज़ीकरण में नहीं पाया है, लेकिन मेरा मानना है कि चर के मूल्यों (और कुछ स्थिरांक की गणना असाइनमेंट के समय नहीं की जाती है)।
इस उदाहरण पर एक नज़र डालें:
import tensorflow as tf
from datetime import datetime
dim = 7000
पहला उदाहरण जहां मैं सिर्फ यादृच्छिक संख्याओं का एक निरंतर सेंसर शुरू करता हूं, लगभग एक ही समय में लगभग मंद मंद ( 0:00:00.003261
) चलता है
startTime = datetime.now()
m1 = tf.truncated_normal([dim, dim], mean=0.0, stddev=0.02, dtype=tf.float32, seed=1)
print datetime.now() - startTime
दूसरे मामले में, जहां निरंतर का वास्तव में मूल्यांकन किया जाता है और मूल्यों को सौंपा जाता है, समय स्पष्ट रूप से मंद पर निर्भर करता है ( 0:00:01.244642
)
startTime = datetime.now()
m1 = tf.truncated_normal([dim, dim], mean=0.0, stddev=0.02, dtype=tf.float32, seed=1)
sess = tf.Session()
sess.run(m1)
print datetime.now() - startTime
और आप कुछ की गणना करके इसे और अधिक स्पष्ट कर सकते हैं (यह d = tf.matrix_determinant(m1)
ध्यान में रखते हुए कि समय चलेगा O(dim^2.8)
)
PS मुझे लगा कि यह प्रलेखन में समझाया गया है :
Tensor ऑब्जेक्ट किसी ऑपरेशन के परिणाम के लिए एक प्रतीकात्मक संभाल है, लेकिन वास्तव में ऑपरेशन के आउटपुट के मूल्यों को नहीं रखता है।