इस पेज पर ARM पर आधारित कंप्यूटर के लिए, TensorFlow Lite लाइब्रेरी बनाने का तरीका बताया गया है.
TensorFlow Lite दो बिल्ड सिस्टम के साथ काम करता है और हर बिल्ड सिस्टम में काम करने वाली सुविधाएं एक जैसी नहीं होती हैं. सही बिल्ड सिस्टम चुनने के लिए, नीचे दी गई टेबल देखें.
सुविधा | Bazel | CMake |
---|---|---|
पहले से तय टूलचेन | arAccessibility, aach64 | आर्मल, arfe, arch64 |
पसंद के मुताबिक टूलचेन | इस्तेमाल करना मुश्किल है | इस्तेमाल करने में आसान |
TF ऑपरेशन चुनें | समर्थित | not supported |
जीपीयू प्रतिनिधि | सिर्फ़ Android के लिए उपलब्ध | ऐसा कोई भी प्लैटफ़ॉर्म जो OpenCL के साथ काम करता हो |
XNNPack | समर्थित | समर्थित |
Python व्हील | समर्थित | समर्थित |
C एपीआई | समर्थित | साथ काम करता है |
C++ एपीआई | Bazel प्रोजेक्ट के साथ काम करता है | Cmake प्रोजेक्ट के लिए काम करता है |
Cmake की मदद से, ARM के लिए क्रॉस-कंपाइलेशन
अगर आपके पास Cमेक प्रोजेक्ट है या आपको कस्टम टूलचेन का इस्तेमाल करना है, तो क्रॉस कंपाइलेशन के लिए Cमेक का बेहतर इस्तेमाल करें. इसके लिए, C Make के साथ TensorFlow Lite पेज अलग से उपलब्ध है.
Bazel के साथ ARM के लिए क्रॉस-कंपाइलेशन
अगर आपके पास Bazel प्रोजेक्ट है या आपको TF ऑपरेशन का इस्तेमाल करना है, तो Bazel बिल्ड सिस्टम का बेहतर इस्तेमाल करें. आपको ARM32/64 में शेयर की गई लाइब्रेरी बनाने के लिए, Bazel के साथ इंटिग्रेट किए गए ARM GCC 8.3 टूलचेन का इस्तेमाल करना होगा.
टारगेट आर्किटेक्चर | Bazel कॉन्फ़िगरेशन | इसके साथ काम करने वाले डिवाइस |
---|---|---|
ar साथ (ARM32) | --config=elinux_armhf | RPI3, 32 बिट वाला RPI4 Raspबेरी Pi OS |
AArch64 (ARM64) | --config=elinux_aarch64 | कोरल, Ubuntu 64 बिट के साथ RPI4 |
नीचे दिए गए निर्देशों की जांच, Ubuntu 16.04.3 64-बिट पीसी (AMD64) और TensorFlow devel Docker image tensorflow/tensorflow:devel पर की गई है.
TensorFlow Lite को Bazel के साथ क्रॉस करने के लिए, यह तरीका अपनाएं:
पहला चरण. Bazel इंस्टॉल करें
Bazel, TensorFlow का मुख्य बिल्ड सिस्टम है. Bazel बिल्ड सिस्टम का सबसे नया वर्शन इंस्टॉल करें.
दूसरा चरण. TensorFlow का डेटा स्टोर करने की जगह का क्लोन
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
तीसरा चरण. ARM बाइनरी बनाएं
C लाइब्रेरी
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 पेज देखें.
C++ लाइब्रेरी
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
शेयर की गई लाइब्रेरी को यहां देखा जा सकता है:
bazel-bin/tensorflow/lite/libtensorflowlite.so
.
फ़िलहाल, सभी ज़रूरी हेडर फ़ाइलों को निकालने का कोई आसान तरीका नहीं है. इसलिए, आपको सभी हेडर फ़ाइलों को TensorFlow के डेटा स्टोर करने की जगह से tensorflow/lite/ में शामिल करना होगा. इसके अलावा, आपको ftBuffers और Abseil की हेडर फ़ाइलों की ज़रूरत होगी.
वगैरह
टूलचेन की मदद से, Bazel के अन्य टारगेट भी बनाए जा सकते हैं. यहां कुछ उपयोगी टारगेट दिए गए हैं.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image