Google I / O là một kết quả hoàn hảo! Cập nhật các phiên TensorFlow Xem phiên

Xây dựng TensorFlow Lite cho bảng ARM

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 xây dựng và các tính năng được hỗ trợ từ mỗi hệ thống xây 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
Các công cụ được xác định trước armhf, aarch64 armel, armhf, aarch64
Các công cụ tùy chỉnh khó sử dụng hơn dễ sử dụng
Chọn hoạt động TF được 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
XNNPack được hỗ trợ được hỗ trợ
Bánh xe Python được hỗ trợ được hỗ trợ
API C được hỗ trợ được 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ó một dự án CMake hoặc nếu bạn muốn sử dụng chuỗi công cụ tùy chỉnh, bạn nên sử dụng CMake để biên dịch chéo. Có một trang biên dịch chéo riêng biệt TensorFlow Lite với trang CMake có sẵn 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, bạn nên sử dụng hệ thống xây dựng Bazel. Bạn sẽ sử dụng các công cụ ARM GCC 8.3 tích hợp với Bazel để xây dựng một thư viện chia sẻ ARM32 / 64.

Kiến trúc mục tiêu Cấu hình Bazel Các thiết bị tương thích
armhf (ARM32) --config = elinux_armhf RPI3, RPI4 với Hệ điều hành Raspberry Pi 32 bit
AArch64 (ARM64) --config = elinux_aarch64 Coral, RPI4 với Ubuntu 64 bit

Các hướng dẫn sau đã được thử nghiệm trên Ubuntu 16.04.3 64-bit PC (AMD64) và TensorFlow devel docker hình ảnh 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. Kho lưu trữ Clone TensorFlow

git clone https://github.com/tensorflow/tensorflow.git tensorflow_src

Bước 3. Xây dựng hệ 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 một thư viện được chia sẻ trong: 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 một thư viện được chia sẻ trong: bazel-bin/tensorflow/lite/libtensorflowlite.so .

Hiện tại, không có cách nào đơn giản để 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 /amples / label_image: label_image