2015-11-16 9 views
5

मैं अपने सीआईएफएआर -10 मॉडल प्रशिक्षण के पायथन कोड से अपने मूल सी ++ कोड में कदम उठाकर टेंसरफ्लो के इंटर्नल्स सीखने की कोशिश कर रहा हूं। पाइथन कोड के चरण-दर-चरण डिबगिंग के लिए एक्लिप्स + पायडेव का उपयोग करना बहुत अच्छा काम करता है, लेकिन मुझे नहीं पता कि टेंसरफ्लो कोर के सी ++ कोड में कैसे कदम उठाना है। मैंने एक अलग प्रोजेक्ट में सी ++ कोड बनाने के लिए एक्लिप्स सीडीटी का उपयोग करने की कोशिश की, और चलाते हुए पाइथन प्रक्रिया को डीबगर संलग्न करें जैसा कि here वर्णित है, लेकिन प्रतीकों को कभी लोड नहीं किया जाता है और (जाहिर है) स्थगित ब्रेकपॉइंट्स कभी हिट नहीं होते हैं।टेंसरफ्लो कोर डीबग; अनुपलब्ध डीबग प्रतीकों

पृष्ठभूमि और सेटअप:

मैं Ubuntu 14.04 LTS पर चल रहा हूँ, के रूप में here वर्णित और मेरे CDT परियोजना एक Makefile

bazel build -c dbg //tensorflow/cc:tutorials_example_trainer युक्त का उपयोग करता स्रोतों से TensorFlow कोड स्थापित किया।

+2

आपको –

+0

प्रतीकों को शामिल करने के लिए आपको "--compilation_mode dbg" का उपयोग करके स्रोत से टेंसरफ़्लो को फिर से बनाने की आवश्यकता हो सकती है यदि मैं बैज़ल के उपयोगकर्ता मैन्युअल रूप से सही ढंग से समझता हूं, तो आपका सुझाव "-c dbg" ध्वज के बराबर है। .. – user5568317

+0

हां, समकक्ष। एचएम ... मुझे आश्चर्य है कि समस्या यह है कि सभी टेंसरफ्लो सी प्रतीकों "पायथन" बाइनरी में नहीं हैं, बल्कि इसके बजाय .so फ़ाइलों में जो गतिशील रूप से लोड और SWIG के माध्यम से उपयोग किए जाते हैं। यहां एक लिंक दिया गया है जो थोड़ा सा प्रासंगिक दिखता है - http://library.tebyan.net/en/Viewer/Text/164572/330 –

उत्तर

5

टेंसरफ्लो _pywrap_tensorflow.so नामक लाइब्रेरी लोड करता है जिसमें इसकी सी एपीआई शामिल है (जैसा कि tensorflow/tensorflow/core/client/tensor_c_api.cc में परिभाषित किया गया है)।

मेरे मामले में रनटाइम के दौरान लोड पुस्तकालय
~/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so
में स्थित था लेकिन पुस्तकालय है कि स्थानीय स्रोत कोड से बनाया गया था ~/.cache/bazel/_bazel_<username>/dbb3c677efbf9967e464a5c6a1e69337/tensorflow/bazel-out/local_linux-dbg/bin/tensorflow/python/_pywrap_tensorflow.so में स्थित था।

लोड लाइब्रेरी पर स्थानीय रूप से निर्मित लाइब्रेरी की प्रतिलिपि बनाना, और प्रश्न में परिभाषित पाइथन प्रक्रिया को जोड़ने से समस्या हल हो गई।

+0

अच्छी जांच! –

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