मैं पूरे TF लाइब्रेरी के निर्माण से बचने के लिए हैक / वर्कअराउंड का उपयोग करता हूं (जो दोनों समय बचाता है (यह 3 मिनट में सेट होता है), डिस्क स्थान, देव निर्भरता स्थापित करने और परिणामी बाइनरी का आकार)। यह आधिकारिक तौर पर असमर्थित है, लेकिन अच्छी तरह से काम करता है अगर आप जल्दी से अंदर कूदना चाहते हैं।
टीएफ को पाइप ( pip install tensorflow
या pip install tensorflow-gpu
) के माध्यम से स्थापित करें । फिर इसकी लाइब्रेरी _pywrap_tensorflow.so
(TF 0. * - 1.0) या _pywrap_tensorflow_internal.so
(TF 1.1+) खोजें। मेरे मामले में (उबंटू) यह स्थित है /usr/local/lib/python2.7/dist-packages/tensorflow/python/_pywrap_tensorflow.so
। फिर इस लाइब्रेरी में एक सिमिलिंक बनाएं, जिसे lib_pywrap_tensorflow.so
कहीं न कहीं कहा जाता है, जहां आपका बिल्ड सिस्टम इसे ढूंढता है (जैसे /usr/lib/local
)। उपसर्ग lib
महत्वपूर्ण है! आप इसे दूसरा lib*.so
नाम भी दे सकते हैं - यदि आप इसे कॉल करते हैं libtensorflow.so
, तो आपको TF के साथ काम करने के लिए लिखे गए अन्य कार्यक्रमों के साथ बेहतर संगतता मिल सकती है।
फिर एक C ++ प्रोजेक्ट बनाएं जैसा कि आप (CMake, Make, Bazel, जो भी आपको पसंद है) के लिए उपयोग किया जाता है।
और फिर आप अपनी परियोजनाओं के लिए TF उपलब्ध करने के लिए इस पुस्तकालय के खिलाफ लिंक करने के लिए तैयार हैं (और आपको python2.7
पुस्तकालयों के खिलाफ भी लिंक करना होगा)! CMake में, आप उदाहरण के लिए जोड़ते हैं target_link_libraries(target _pywrap_tensorflow python2.7)
।
C ++ हैडर फाइलें इस लाइब्रेरी के आसपास स्थित हैं, जैसे कि /usr/local/lib/python2.7/dist-packages/tensorflow/include/
।
एक बार फिर: यह तरीका आधिकारिक रूप से असमर्थित है और आप विभिन्न मुद्दों में भाग सकते हैं। लाइब्रेरी को उदाहरण के तौर पर प्रोटोबॉफ़ के खिलाफ सांख्यिकीय रूप से जोड़ा गया लगता है, इसलिए आप विषम लिंक-टाइम या रन-टाइम समस्याओं में चल सकते हैं। लेकिन मैं एक संग्रहीत ग्राफ को लोड करने, भार को बहाल करने और अनुमान लगाने में सक्षम हूं, जो IMO है जो C ++ में सबसे अधिक वांछित कार्यक्षमता है।