यह पृष्ठ वर्णन करता है कि ARM-आधारित कंप्यूटरों के लिए TensorFlow Lite लाइब्रेरी कैसे बनाई जाए।
TensorFlow Lite दो बिल्ड सिस्टम का समर्थन करता है और प्रत्येक बिल्ड सिस्टम से समर्थित सुविधाएँ समान नहीं हैं। उचित निर्माण प्रणाली चुनने के लिए निम्न तालिका की जाँच करें।
विशेषता | बज़ेल | सीएमके |
---|---|---|
पूर्वनिर्धारित टूलचेन | आर्मएचएफ, आर्क64 | आर्मेल, आर्मएचएफ, आर्क64 |
कस्टम टूलचेन | उपयोग करना कठिन | प्रयोग करने में आसान |
टीएफ ऑप्स का चयन करें | का समर्थन किया | समर्थित नहीं |
जीपीयू प्रतिनिधि | केवल Android के लिए उपलब्ध है | कोई भी प्लेटफ़ॉर्म जो OpenCL का समर्थन करता है |
XNNपैक | का समर्थन किया | का समर्थन किया |
पायथन व्हील | का समर्थन किया | का समर्थन किया |
सी एपीआई | का समर्थन किया | का समर्थन किया |
सी++ एपीआई | बेज़ेल परियोजनाओं के लिए समर्थित | सीएमके परियोजनाओं के लिए समर्थित |
सीएमके के साथ एआरएम के लिए क्रॉस-संकलन
यदि आपके पास सीएमके प्रोजेक्ट है या आप एक कस्टम टूलचेन का उपयोग करना चाहते हैं, तो बेहतर होगा कि आप क्रॉस कंपाइलेशन के लिए सीएमके का उपयोग करें। इसके लिए CMake पेज के साथ एक अलग क्रॉस संकलन TensorFlow Lite उपलब्ध है।
बेज़ेल के साथ एआरएम के लिए क्रॉस-संकलन
यदि आपके पास बेज़ल प्रोजेक्ट है या आप टीएफ ऑप्स का उपयोग करना चाहते हैं, तो बेहतर होगा कि आप बेज़ल बिल्ड सिस्टम का उपयोग करें। आप ARM32/64 साझा लाइब्रेरी बनाने के लिए बेज़ेल के साथ एकीकृत ARM GCC 8.3 टूलचेन का उपयोग करेंगे।
लक्ष्य वास्तुकला | बेज़ेल कॉन्फ़िगरेशन | संगत उपकरण |
---|---|---|
आर्मएचएफ (ARM32) | --config=elinux_armhf | 32 बिट रास्पबेरी पाई ओएस के साथ RPI3, RPI4 |
एआर्क64 (एआरएम64) | --config=elinux_aarch64 | उबंटू 64 बिट के साथ कोरल, आरपीआई4 |
निम्नलिखित निर्देशों का परीक्षण Ubuntu 16.04.3 64-बिट पीसी (AMD64) और TensorFlow devel docker image tansorflow/tensorflow:devel पर किया गया है।
TensorFlow Lite को बेज़ेल के साथ संकलित करने के लिए, चरणों का पालन करें:
चरण 1. बेज़ेल स्थापित करें
बेज़ल TensorFlow के लिए प्राथमिक निर्माण प्रणाली है। बेज़ेल बिल्ड सिस्टम का नवीनतम संस्करण स्थापित करें।
चरण 2. क्लोन TensorFlow रिपॉजिटरी
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
चरण 3. एआरएम बाइनरी बनाएं
सी लाइब्रेरी
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
आप एक साझा लाइब्रेरी यहां पा सकते हैं: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
।
विवरण के लिए TensorFlow Lite C API पृष्ठ देखें।
सी++ लाइब्रेरी
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
आप एक साझा लाइब्रेरी यहां पा सकते हैं: bazel-bin/tensorflow/lite/libtensorflowlite.so
।
वर्तमान में, सभी आवश्यक हेडर फ़ाइलों को निकालने का कोई सीधा तरीका नहीं है, इसलिए आपको TensorFlow रिपॉजिटरी से सभी हेडर फ़ाइलों को Tensorflow/lite/ में शामिल करना होगा। इसके अतिरिक्त, आपको फ़्लैटबफ़र्स और एब्सिल से हेडर फ़ाइलों की आवश्यकता होगी।
वगैरह
आप टूलचेन के साथ अन्य बेज़ेल लक्ष्य भी बना सकते हैं। यहां कुछ उपयोगी लक्ष्य दिए गए हैं.
- //टेन्सरफ्लो/लाइट/टूल्स/बेंचमार्क:बेंचमार्क_मॉडल
- //tensorflow/lite/examples/label_image:label_image