Hari Komunitas ML adalah 9 November! Bergabung dengan kami untuk update dari TensorFlow, JAX, dan lebih Pelajari lebih lanjut

Pustaka Tugas TensorFlow Lite

Pustaka Tugas TensorFlow Lite berisi sekumpulan pustaka khusus tugas yang andal dan mudah digunakan bagi pengembang aplikasi untuk menciptakan pengalaman ML dengan TFLite. Ini menyediakan antarmuka model siap pakai yang dioptimalkan untuk tugas pembelajaran mesin populer, seperti klasifikasi gambar, pertanyaan dan jawaban, dll. Antarmuka model dirancang khusus untuk setiap tugas guna mencapai kinerja dan kegunaan terbaik. Pustaka Tugas berfungsi lintas platform dan didukung di Java, C ++, dan Swift.

Apa yang diharapkan dari Perpustakaan Tugas

  • API yang bersih dan terdefinisi dengan baik dapat digunakan oleh non-pakar ML
    Inferensi dapat dilakukan hanya dalam 5 baris kode. Gunakan API yang kuat dan mudah digunakan di pustaka Tugas sebagai elemen dasar untuk membantu Anda mengembangkan ML dengan mudah menggunakan TFLite di perangkat seluler.

  • Pemrosesan data yang kompleks tetapi umum
    Mendukung visi umum dan logika pemrosesan bahasa alami untuk mengonversi antara data Anda dan format data yang diperlukan oleh model. Menyediakan logika pemrosesan yang sama dan dapat dibagikan untuk pelatihan dan inferensi.

  • Keuntungan kinerja tinggi
    Pemrosesan data akan membutuhkan waktu tidak lebih dari beberapa milidetik, memastikan pengalaman inferensi yang cepat menggunakan TensorFlow Lite.

  • Ekstensibilitas dan kustomisasi
    Anda dapat memanfaatkan semua manfaat yang disediakan infrastruktur Perpustakaan Tugas dan dengan mudah membuat API inferensi Android / iOS Anda sendiri.

Tugas yang didukung

Di bawah ini adalah daftar jenis tugas yang didukung. Daftar ini diperkirakan akan bertambah seiring kami terus mengaktifkan lebih banyak kasus penggunaan.

Jalankan Perpustakaan Tugas dengan Delegasi

Delegasi mengaktifkan akselerasi hardware model TensorFlow Lite dengan memanfaatkan akselerator di perangkat seperti GPU dan Coral Edge TPU . Memanfaatkannya untuk operasi jaringan neural memberikan manfaat besar dalam hal latensi dan efisiensi daya. Misalnya, GPU dapat memberikan kecepatan hingga 5x dalam latensi pada perangkat seluler, dan inferensi TPU Coral Edge 10x lebih cepat daripada CPU desktop.

Pustaka Tugas menyediakan konfigurasi yang mudah dan opsi mundur bagi Anda untuk menyiapkan dan menggunakan delegasi. Akselerator berikut sekarang didukung di Task C ++ API:

Delegasi Core ML untuk iOS, dan dukungan akselerasi di Task Java / Swift / Web API akan segera hadir.

Contoh penggunaan GPU di Android

Langkah 1. Bergantung pada plugin delegasi GPU di target build bazel Anda, seperti:

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

Opsi delegasi lainnya termasuk:

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

Langkah 2. Konfigurasi delegasi GPU di opsi tugas. Misalnya, Anda dapat mengatur GPU di BertQuestionAnswerer sebagai berikut:

// 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);

Jelajahi pengaturan akselerator lebih lanjut di sini .

Contoh penggunaan Coral Edge TPU

Langkah 1. Bergantung pada plugin delegasi Coral Edge TPU di target build bazel Anda, seperti:

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

Langkah 2. Konfigurasi Coral Edge TPU di opsi tugas. Misalnya, Anda dapat menyiapkan Coral Edge TPU di ImageClassifier sebagai berikut:

// 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();

Langkah 3. Instal paket libusb-1.0-0-dev seperti di bawah ini. Jika sudah terpasang, lanjutkan ke langkah berikutnya.

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

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

Langkah 4. Kompilasi dengan konfigurasi berikut dalam perintah bazel Anda:

# 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.

Cobalah alat demo CLI Task Library dengan perangkat Coral Edge TPU Anda. Pelajari lebih lanjut tentang model Edge TPU yang telah dilatih sebelumnya dan pengaturan Edge TPU lanjutan .