Trang này mô tả cách xây dựng thư viện TensorFlow Lite cho máy tính dựa trên ARM.
TensorFlow Lite hỗ trợ hai hệ thống bản dựng và các tính năng được hỗ trợ từ mỗi hệ thống bản dựng không giống nhau. Kiểm tra bảng sau để chọn một hệ thống xây dựng phù hợp.
Tính năng | bazel | CMake |
---|---|---|
Chuỗi công cụ được xác định trước | armhf, aarch64 | vũ khí, armhf, aarch64 |
chuỗi công cụ tùy chỉnh | khó sử dụng hơn | dễ sử dụng |
Chọn hoạt động TF | hỗ trợ | không được hỗ trợ |
đại biểu GPU | chỉ có sẵn cho Android | bất kỳ nền tảng nào hỗ trợ OpenCL |
Gói XNN | hỗ trợ | hỗ trợ |
bánh xe trăn | hỗ trợ | hỗ trợ |
API C | hỗ trợ | hỗ trợ |
API C++ | được hỗ trợ cho các dự án Bazel | được hỗ trợ cho các dự án CMake |
Biên dịch chéo cho ARM với CMake
Nếu bạn có dự án CMake hoặc nếu bạn muốn sử dụng chuỗi công cụ tùy chỉnh, tốt hơn bạn nên sử dụng CMake để biên dịch chéo. Có một trang TensorFlow Lite biên dịch chéo riêng biệt với trang CMake dành cho việc này.
Biên dịch chéo cho ARM với Bazel
Nếu bạn có một dự án Bazel hoặc nếu bạn muốn sử dụng TF ops, tốt hơn bạn nên sử dụng hệ thống xây dựng Bazel. Bạn sẽ sử dụng chuỗi công cụ ARM GCC 8.3 tích hợp với Bazel để xây dựng thư viện chia sẻ ARM32/64.
Kiến trúc mục tiêu | Cấu hình khung | thiết bị tương thích |
---|---|---|
cánh tay (ARM32) | --config=elinux_armhf | RPI3, RPI4 với hệ điều hành Raspberry Pi 32 bit |
AArch64 (ARM64) | --config=elinux_aarch64 | San hô, RPI4 với Ubuntu 64 bit |
Các hướng dẫn sau đây đã được thử nghiệm trên Ubuntu 16.04.3 PC 64-bit (AMD64) và TensorFlow devel docker image tensorflow/tensorflow:devel .
Để biên dịch chéo TensorFlow Lite với Bazel, hãy làm theo các bước:
Bước 1. Cài đặt Bazel
Bazel là hệ thống xây dựng chính cho TensorFlow. Cài đặt phiên bản mới nhất của hệ thống xây dựng Bazel .
Bước 2. Sao chép kho lưu trữ TensorFlow
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
Bước 3. Xây dựng mã nhị phân ARM
thư viện C
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
Bạn có thể tìm thấy thư viện dùng chung tại: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
.
Kiểm tra trang API TensorFlow Lite C để biết chi tiết.
thư viện C++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
Bạn có thể tìm thấy thư viện dùng chung tại: bazel-bin/tensorflow/lite/libtensorflowlite.so
.
Hiện tại, không có cách đơn giản nào để trích xuất tất cả các tệp tiêu đề cần thiết, vì vậy bạn phải bao gồm tất cả các tệp tiêu đề trong tensorflow/lite/ từ kho lưu trữ TensorFlow. Ngoài ra, bạn sẽ cần các tệp tiêu đề từ FlatBuffers và Abseil.
Vân vân
Bạn cũng có thể xây dựng các mục tiêu Bazel khác bằng chuỗi công cụ. Dưới đây là một số mục tiêu hữu ích.
- // tensorflow/lite/tools/benchmark:benchmark_model
- // tensorflow/lite/examples/label_image:label_image