Giúp bảo vệ Great Barrier Reef với TensorFlow trên Kaggle Tham Challenge

Thư viện tác vụ TensorFlow Lite

Thư viện tác vụ TensorFlow Lite chứa một bộ thư viện tác vụ cụ thể mạnh mẽ và dễ sử dụng dành cho các nhà phát triển ứng dụng để tạo trải nghiệm ML với TFLite. Nó cung cấp các giao diện mô hình ngoài hộp được tối ưu hóa cho các tác vụ học máy phổ biến, chẳng hạn như phân loại hình ảnh, câu hỏi và câu trả lời, v.v. Các giao diện mô hình được thiết kế đặc biệt cho từng tác vụ để đạt được hiệu suất và khả năng sử dụng tốt nhất. Thư viện tác vụ hoạt động trên nhiều nền tảng và được hỗ trợ trên Java, C ++ và Swift.

Những gì mong đợi từ Thư viện Tác vụ

  • Các API sạch và được xác định rõ ràng có thể được sử dụng bởi những người không phải là chuyên gia ML
    Suy luận có thể được thực hiện chỉ trong vòng 5 dòng mã. Sử dụng các API mạnh mẽ và dễ sử dụng trong thư viện Tác vụ làm khối xây dựng để giúp bạn dễ dàng phát triển ML với TFLite trên thiết bị di động.

  • Xử lý dữ liệu phức tạp nhưng phổ biến
    Hỗ trợ tầm nhìn chung và logic xử lý ngôn ngữ tự nhiên để chuyển đổi giữa dữ liệu của bạn và định dạng dữ liệu theo yêu cầu của mô hình. Cung cấp logic xử lý giống nhau, có thể chia sẻ để đào tạo và suy luận.

  • Tăng hiệu suất cao
    Quá trình xử lý dữ liệu sẽ mất không quá vài mili giây, đảm bảo trải nghiệm suy luận nhanh khi sử dụng TensorFlow Lite.

  • Khả năng mở rộng và tùy chỉnh
    Bạn có thể tận dụng tất cả các lợi ích mà cơ sở hạ tầng Thư viện tác vụ cung cấp và dễ dàng xây dựng các API suy luận Android / iOS của riêng bạn.

Các nhiệm vụ được hỗ trợ

Dưới đây là danh sách các loại nhiệm vụ được hỗ trợ. Danh sách dự kiến ​​sẽ tăng lên khi chúng tôi tiếp tục cho phép ngày càng nhiều trường hợp sử dụng.

Chạy Thư viện Tác vụ với các Đại biểu

Các đại biểu cho phép tăng tốc phần cứng của các mô hình TensorFlow Lite bằng cách tận dụng tăng tốc trên thiết bị như GPUCoral Cạnh TPU . Việc sử dụng chúng cho các hoạt động mạng nơ-ron mang lại những lợi ích to lớn về độ trễ và hiệu quả sử dụng điện năng. Ví dụ, GPU có thể cung cấp tối đa một 5x tăng tốc trong thời gian trễ trên các thiết bị di động, và Coral Cạnh TPUs suy luận 10x nhanh hơn so với CPU máy tính để bàn.

Thư viện Tác vụ cung cấp cấu hình dễ dàng và các tùy chọn dự phòng để bạn thiết lập và sử dụng các đại biểu. Các trình tăng tốc sau hiện được hỗ trợ trong API tác vụ:

Lõi ML đại biểu dành cho iOS, và khả năng tăng tốc hỗ trợ trong Task Java / Swift / Web API đang đến sớm.

Ví dụ về cách sử dụng GPU trên Android trong Java

Bước 1. Thêm thư viện plugin của GPU đại biểu của mô-đun của bạn build.gradle file:

dependencies {
    // Import Task Library dependency for vision, text, or audio.

    // Import the GPU delegate plugin Library for GPU inference
    implementation 'org.tensorflow:tensorflow-lite-gpu-delegate-plugin:0.3.0'
}

Bước 2. Cấu hình GPU đại biểu trong các tùy chọn công việc thông qua BaseOptions . Ví dụ, bạn có thể thiết lập GPU trong ObjectDetecor như sau:

// Turn on GPU delegation.
BaseOptions baseOptions = BaseOptions.builder().useGpu().build();
// Configure other options in ObjectDetector
ObjectDetectorOptions options =
    ObjectDetectorOptions.builder()
        .setBaseOptions(baseOptions)
        .setMaxResults(1)
        .build();

// Create ObjectDetector from options.
ObjectDetector objectDetector =
    ObjectDetector.createFromFileAndOptions(context, modelFile, options);

// Run inference
List<Detection> results = objectDetector.detect(image);

Ví dụ về cách sử dụng GPU trên Android trong C ++

Bước 1. Phụ thuộc vào plugin ủy quyền GPU trong mục tiêu xây dựng bazel của bạn, chẳng hạn như:

deps = [
  "//tensorflow_lite_support/acceleration/configuration:gpu_plugin", # for GPU
]

Các tùy chọn đại biểu khác bao gồm:

"//tensorflow_lite_support/acceleration/configuration:nnapi_plugin", # for NNAPI
"//tensorflow_lite_support/acceleration/configuration:hexagon_plugin", # for Hexagon

Bước 2. Định cấu hình đại biểu GPU trong các tùy chọn tác vụ. Ví dụ, bạn có thể thiết lập GPU trong BertQuestionAnswerer như sau:

// Initialization
BertQuestionAnswererOptions options;
// Load the TFLite model.
auto base_options = options.mutable_base_options();
base_options->mutable_model_file()->set_file_name(model_file);
// Turn on GPU delegation.
auto tflite_settings = base_options->mutable_compute_settings()->mutable_tflite_settings();
tflite_settings->set_delegate(Delegate::GPU);
// (optional) Turn on automatical fallback to TFLite CPU path on delegation errors.
tflite_settings->mutable_fallback_settings()->set_allow_automatic_fallback_on_execution_error(true);

// Create QuestionAnswerer from options.
std::unique_ptr<QuestionAnswerer> answerer = BertQuestionAnswerer::CreateFromOptions(options).value();

// Run inference on GPU.
std::vector<QaAnswer> results = answerer->Answer(context_of_question, question_to_ask);

Khám phá các thiết lập tăng tốc tiên tiến hơn ở đây .

Ví dụ về cách sử dụng Coral Edge TPU trong C ++

Bước 1. Phụ thuộc vào plugin ủy quyền Coral Edge TPU trong mục tiêu xây dựng bazel của bạn, chẳng hạn như:

deps = [
  "//tensorflow_lite_support/acceleration/configuration:edgetpu_coral_plugin", # for Coral Edge TPU
]

Bước 2. Định cấu hình TPU Coral Edge trong các tùy chọn tác vụ. Ví dụ, bạn có thể thiết lập Coral Cạnh TPU trong ImageClassifier như sau:

// Initialization
ImageClassifierOptions options;
// Load the TFLite model.
options.mutable_base_options()->mutable_model_file()->set_file_name(model_file);
// Turn on Coral Edge TPU delegation.
options.mutable_base_options()->mutable_compute_settings()->mutable_tflite_settings()->set_delegate(Delegate::EDGETPU_CORAL);
// Create ImageClassifier from options.
std::unique_ptr<ImageClassifier> image_classifier = ImageClassifier::CreateFromOptions(options).value();

// Run inference on Coral Edge TPU.
const ClassificationResult result = image_classifier->Classify(*frame_buffer).value();

Bước 3. Cài đặt libusb-1.0-0-dev gói như dưới đây. Nếu nó đã được cài đặt, hãy chuyển sang bước tiếp theo.

# On the Linux
sudo apt-get install libusb-1.0-0-dev

# On the macOS
port install libusb
# or
brew install libusb

Bước 4. Biên dịch với các cấu hình sau trong lệnh bazel của bạn:

# On the Linux
--define darwinn_portable=1 --linkopt=-lusb-1.0

# On the macOS, add '--linkopt=-lusb-1.0 --linkopt=-L/opt/local/lib/' if you are
# using MacPorts or '--linkopt=-lusb-1.0 --linkopt=-L/opt/homebrew/lib' if you
# are using Homebrew.
--define darwinn_portable=1 --linkopt=-L/opt/local/lib/ --linkopt=-lusb-1.0

# Windows is not supported yet.

Hãy thử những công cụ giới thiệu công tác Thư viện CLI với các thiết bị Coral Cạnh TPU của bạn. Khám phá thêm về các mô hình cạnh TPU pretrainedthiết lập Cạnh TPU cao cấp .