यह पृष्ठ ARM-आधारित कंप्यूटरों के लिए TensorFlow Lite लाइब्रेरी बनाने का तरीका बताता है।
TensorFlow Lite दो बिल्ड सिस्टम का समर्थन करता है और प्रत्येक बिल्ड सिस्टम से समर्थित सुविधाएँ समान नहीं हैं। उचित बिल्ड सिस्टम चुनने के लिए निम्न तालिका देखें।
विशेषता | बज़ेल | सीएमके |
---|---|---|
पूर्वनिर्धारित टूलचेन्स | आर्मएचएफ, आर्च64 | आर्मल, आर्मएचएफ, आर्च64 |
कस्टम टूलचेन्स | उपयोग करना कठिन | प्रयोग करने में आसान |
TF ऑप्स चुनें | का समर्थन किया | समर्थित नहीं |
जीपीयू प्रतिनिधि | केवल Android के लिए उपलब्ध है | कोई भी प्लेटफ़ॉर्म जो OpenCL का समर्थन करता है |
एक्सएनएनपैक | का समर्थन किया | का समर्थन किया |
पायथन व्हील | का समर्थन किया | का समर्थन किया |
सी एपीआई | का समर्थन किया | का समर्थन किया |
सी ++ एपीआई | Bazel परियोजनाओं के लिए समर्थित | सीएमके परियोजनाओं के लिए समर्थित |
सीएमके के साथ एआरएम के लिए क्रॉस-संकलन
यदि आपके पास सीएमके प्रोजेक्ट है या यदि आप कस्टम टूलचेन का उपयोग करना चाहते हैं, तो आप क्रॉस संकलन के लिए सीएमके का बेहतर उपयोग करेंगे। इसके लिए CMake पेज के साथ एक अलग क्रॉस संकलन TensorFlow Lite उपलब्ध है।
बाजेल के साथ एआरएम के लिए क्रॉस-संकलन
यदि आपके पास Bazel प्रोजेक्ट है या यदि आप TF ऑप्स का उपयोग करना चाहते हैं, तो बेहतर होगा कि आप Bazel बिल्ड सिस्टम का उपयोग करें। ARM32/64 साझा लाइब्रेरी बनाने के लिए आप Bazel के साथ एकीकृत ARM GCC 8.3 टूलचेन का उपयोग करेंगे।
लक्ष्य वास्तुकला | बेज़ेल कॉन्फ़िगरेशन | संगत उपकरण |
---|---|---|
आर्महफ (एआरएम 32) | --config=elinux_armhf | RPI3, RPI4 32 बिट रास्पबेरी पाई ओएस के साथ |
AArch64 (ARM64) | --config=elinux_aarch64 | कोरल, RPI4 Ubuntu 64 बिट के साथ |
निम्नलिखित निर्देशों का Ubuntu 16.04.3 64-बिट PC (AMD64) और TensorFlow devel docker image tensorflow/tensorflow:devel पर परीक्षण किया गया है।
Bazel के साथ TensorFlow Lite को क्रॉस कंपाइल करने के लिए, इन चरणों का पालन करें:
चरण 1. Bazel स्थापित करें
Bazel TensorFlow के लिए प्राथमिक बिल्ड सिस्टम है। Bazel बिल्ड सिस्टम का नवीनतम संस्करण स्थापित करें।
चरण 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 रिपॉजिटरी से सभी हेडर फ़ाइलों को टेंसरफ़्लो/लाइट/ में शामिल करना होगा। इसके अतिरिक्त, आपको FlatBuffers और Abseil की हेडर फ़ाइलों की आवश्यकता होगी।
वगैरह
आप टूलचेन के साथ अन्य Bazel लक्ष्य भी बना सकते हैं। यहाँ कुछ उपयोगी लक्ष्य दिए गए हैं।
- // टेंसरफ़्लो/लाइट/टूल्स/बेंचमार्क:बेंचमार्क_मॉडल
- // टेंसरफ़्लो/लाइट/उदाहरण/लेबल_इमेज:लेबल_इमेज