ARM बोर्ड के लिए TensorFlow Lite बनाएं

इस पेज पर 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