Thư viện tác vụ TensorFlow Lite chứa một tập hợp các công cụ mạnh mẽ và dễ sử dụng các thư viện dành riêng cho từng nhiệm vụ để nhà phát triển ứng dụng tạo trải nghiệm học máy bằng TFLite. Cung cấp giao diện mô hình có sẵn được tối ưu hoá cho công nghệ học máy phổ biến nhiệm vụ cụ thể, chẳng hạn như phân loại hình ảnh, hỏi và trả lời, v.v. Mô hình được thiết kế riêng cho từng nhiệm vụ để đạt được hiệu suất và khả năng hữu dụng. Thư viện việc cần làm hoạt động trên nhiều nền tảng và được hỗ trợ trên Java, C++ và Swift.
Những tính năng của Thư viện tác vụ
Các API rõ ràng và đơn giản mà các chuyên gia không phải chuyên gia về học máy có thể sử dụng
Bạn có thể thực hiện quá trình suy luận chỉ trong vòng 5 dòng mã. Hãy sử dụng các API dễ sử dụng trong thư viện Tác vụ dưới dạng thành phần để giúp bạn dễ dàng phát triển công nghệ học máy bằng TFLite trên thiết bị di động.Quá trình xử lý dữ liệu phức tạp nhưng thông thường
Hỗ trợ thị giác 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 mà mô hình yêu cầu. Cung cấp cùng một logic xử lý có thể chia sẻ để huấn luyện và suy luận.Mức tăng hiệu suất cao
Quá trình xử lý dữ liệu sẽ chỉ mất không quá vài mili giây, đảm bảo kinh nghiệm suy luận nhanh bằng TensorFlow Lite.Khả năng mở rộng và tuỳ chỉnh
Bạn có thể tận dụng tất cả lợi ích mà cơ sở hạ tầng Thư viện tác vụ mang lại cũng như dễ dàng tạo API suy luận Android/iOS của riêng bạn.
Tác vụ được hỗ trợ
Dưới đây là danh sách các loại tác vụ được hỗ trợ. Danh sách này dự kiến sẽ mở rộng khi chúng tôi tiếp tục cung cấp thêm nhiều trường hợp sử dụng.
API Vision
API Ngôn ngữ tự nhiên (NL)
API âm thanh
API tuỳ chỉnh
- Mở rộng cơ sở hạ tầng API Tác vụ và xây dựng tuỳ chỉnh .
Chạy Thư viện tác vụ với người được uỷ quyền
Uỷ quyền bật tính năng tăng tốc phần cứng Các mô hình TensorFlow Lite bằng cách tận dụng trình tăng tốc trên thiết bị như GPU và Coral Edge TPU. Sử dụng cho các hoạt động mạng nơron mang lại lợi ích to lớn về độ trễ và hiệu quả sử dụng năng lượng. Ví dụ: GPU có thể cung cấp hiệu suất lên tới 5 lần tăng tốc độ trễ trên thiết bị di động và suy luận của TPU San hô 10 lần nhanh hơn so với CPU của máy tính.
Thư viện tác vụ giúp bạn dễ dàng định cấu hình và có các lựa chọn dự phòng để thiết lập và sử dụng tính năng uỷ quyền. Các trình tăng tốc sau đây hiện được hỗ trợ trong Task API:
- của Android
- GPU: Java / C++
- Linux / Mac
- Coral Edge TPU: C++
- iOS
Tính năng hỗ trợ Tăng tốc trong Task Swift / API Web sắp ra mắt.
Ví dụ về cách sử dụng GPU trên Android trong Java
Bước 1. Thêm thư viện trình bổ trợ uỷ quyền GPU vào build.gradle
của mô-đun
tệp:
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'
}
Bước 2. Định cấu hình tính năng uỷ quyền GPU trong các tuỳ chọn tác vụ thông qua
BaseOptions.
Chẳng hạn như bạn có thể thiết lập GPU trong ObjectDetector
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 trình bổ trợ uỷ quyền GPU trong mục tiêu bản dựng bazel của bạn, chẳng hạn như:
deps = [
"//tensorflow_lite_support/acceleration/configuration:gpu_plugin", # for GPU
]
Bước 2. Định cấu hình việc uỷ quyền GPU trong các tuỳ 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 chế độ cài đặt nâng cao khác của trình tăng tốc tại đây.
Ví dụ về cách sử dụng TPU san hô trong Python
Định cấu hình TPU San hô trong các tuỳ chọn cơ sở của nhiệm vụ. Ví dụ: bạn có thể
thiết lập TPU San hô trong ImageClassifier
như sau:
# Imports
from tflite_support.task import vision
from tflite_support.task import core
# Initialize options and turn on Coral Edge TPU delegation.
base_options = core.BaseOptions(file_name=model_path, use_coral=True)
options = vision.ImageClassifierOptions(base_options=base_options)
# Create ImageClassifier from options.
classifier = vision.ImageClassifier.create_from_options(options)
# Run inference on Coral Edge TPU.
image = vision.TensorImage.create_from_file(image_path)
classification_result = classifier.classify(image)
Ví dụ về cách sử dụng TPU San hô trong C++
Bước 1. Phụ thuộc vào trình bổ trợ uỷ quyền TPU của Palm Edge trong mục tiêu bản 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 San hô trong các tuỳ chọn nhiệm vụ. Ví dụ: bạn có thể đặt
lên TPU San hô 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 gói libusb-1.0-0-dev
như bên dưới. Nếu đã cập nhật
hãy bỏ qua bước này và 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:
# 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.
Xem thử bản minh hoạ CLI của Thư viện tác vụ công cụ bằng thiết bị TPU San hô của bạn. Khám phá thêm về TPU Edge đã qua huấn luyện trước các mẫu máy tính và TPU cạnh nâng cao cài đặt.
Ví dụ về cách sử dụng Core ML uỷ quyền trong C++
Bạn có thể xem ví dụ đầy đủ tại bài viết Uỷ quyền ML cho sản phẩm cốt lõi của Trình phân loại hình ảnh Thử nghiệm.
Bước 1. Phụ thuộc vào trình bổ trợ uỷ quyền Core ML trong mục tiêu bản dựng bazel của bạn, chẳng hạn như dưới dạng:
deps = [
"//tensorflow_lite_support/acceleration/configuration:coreml_plugin", # for Core ML Delegate
]
Bước 2. Định cấu hình Core ML uỷ quyền trong các tuỳ chọn tác vụ. Ví dụ: bạn có thể đặt
thêm Core ML Ủy quyền 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 Core ML delegation.
options.mutable_base_options()->mutable_compute_settings()->mutable_tflite_settings()->set_delegate(::tflite::proto::Delegate::CORE_ML);
// Set DEVICES_ALL to enable Core ML delegation on any device (in contrast to
// DEVICES_WITH_NEURAL_ENGINE which creates Core ML delegate only on devices
// with Apple Neural Engine).
options.mutable_base_options()->mutable_compute_settings()->mutable_tflite_settings()->mutable_coreml_settings()->set_enabled_devices(::tflite::proto::CoreMLSettings::DEVICES_ALL);
// Create ImageClassifier from options.
std::unique_ptr<ImageClassifier> image_classifier = ImageClassifier::CreateFromOptions(options).value();
// Run inference on Core ML.
const ClassificationResult result = image_classifier->Classify(*frame_buffer).value();