تحتوي مكتبة المهام TensorFlow Lite على مجموعة من المكتبات القوية وسهلة الاستخدام الخاصة بالمهام لمطوري التطبيقات لإنشاء تجارب تعلم تعلم مع TFLite. يوفر واجهات نموذجية محسّنة خارج الصندوق لمهام التعلم الآلي الشائعة ، مثل تصنيف الصور ، والسؤال والإجابة ، وما إلى ذلك. تم تصميم واجهات النموذج خصيصًا لكل مهمة لتحقيق أفضل أداء وإمكانية استخدام. تعمل مكتبة المهام عبر الأنظمة الأساسية وهي مدعومة في Java و C ++ و Swift.
ماذا تتوقع من مكتبة المهام
واجهات برمجة تطبيقات نظيفة ومحددة جيدًا يمكن استخدامها من قبل غير خبراء ML
يمكن إجراء الاستدلال في غضون 5 أسطر فقط من التعليمات البرمجية. استخدم واجهات برمجة التطبيقات القوية وسهلة الاستخدام في مكتبة المهام كوحدات بناء لمساعدتك على تطوير ML بسهولة باستخدام TFLite على الأجهزة المحمولة.معالجة البيانات المعقدة ولكنها شائعة
يدعم الرؤية المشتركة ومنطق معالجة اللغة الطبيعية للتحويل بين بياناتك وتنسيق البيانات الذي يتطلبه النموذج. يوفر نفس منطق المعالجة القابل للمشاركة للتدريب والاستدلال.مكاسب عالية الأداء
لن تستغرق معالجة البيانات أكثر من بضعة أجزاء من الثانية ، مما يضمن تجربة استدلال سريعة باستخدام TensorFlow Lite.القابلية للتوسعة والتخصيص
يمكنك الاستفادة من جميع الفوائد التي توفرها البنية التحتية لمكتبة المهام وإنشاء واجهات برمجة تطبيقات للاستدلال بنظام Android / iOS بسهولة.
المهام المدعومة
فيما يلي قائمة بأنواع المهام المدعومة. من المتوقع أن تنمو القائمة مع استمرارنا في تمكين المزيد والمزيد من حالات الاستخدام.
واجهات برمجة تطبيقات الرؤية
واجهات برمجة تطبيقات اللغة الطبيعية (NL)
واجهات برمجة التطبيقات الصوتية
واجهات برمجة التطبيقات المخصصة
- توسيع البنية التحتية لواجهة برمجة تطبيقات المهام وإنشاء واجهة برمجة تطبيقات مخصصة .
قم بتشغيل مكتبة المهام مع المندوبين
يقوم المندوبون بتمكين تسريع الأجهزة لنماذج TensorFlow Lite من خلال الاستفادة من المسرعات الموجودة على الجهاز مثل GPU و Coral Edge TPU . يوفر استخدامها لعمليات الشبكة العصبية فوائد كبيرة من حيث زمن الوصول وكفاءة الطاقة. على سبيل المثال ، يمكن أن توفر وحدات معالجة الرسومات تسريعًا يصل إلى 5x في زمن الانتقال على الأجهزة المحمولة ، واستنتاج Coral Edge TPUs أسرع 10 مرات من وحدات المعالجة المركزية لسطح المكتب.
توفر مكتبة المهام تكوينًا سهلاً وخيارات الرجوع للخلف لإعداد المفوضين واستخدامهم. المسرعات التالية مدعومة الآن في Task API:
- ذكري المظهر
- وحدة معالجة الرسومات : Java / C ++
- NNAPI : Java / C ++
- السداسي : C ++
- لينكس / ماك
- كورال إيدج TPU : C ++
- iOS
- مندوب ML الأساسي : C ++
دعم التسريع في Task Swift / Web API قريبًا.
مثال على استخدام GPU على Android في Java
الخطوة الأولى. أضف مكتبة البرنامج المساعد لمندوب GPU إلى ملف build.gradle
الخاص بالوحدة النمطية الخاصة بك:
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'
}
الخطوة 2. تكوين مندوب GPU في خيارات المهام من خلال BaseOptions . على سبيل المثال ، يمكنك إعداد GPU في ObjectDetector
على النحو التالي:
// 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);
مثال على استخدام GPU على Android في C ++
الخطوة الأولى: اعتمد على المكوِّن الإضافي لمفوض GPU في هدف بناء bazel ، مثل:
deps = [
"//tensorflow_lite_support/acceleration/configuration:gpu_plugin", # for GPU
]
تشمل خيارات المندوبين الأخرى ما يلي:
"//tensorflow_lite_support/acceleration/configuration:nnapi_plugin", # for NNAPI
"//tensorflow_lite_support/acceleration/configuration:hexagon_plugin", # for Hexagon
الخطوة 2. تكوين مفوض GPU في خيارات المهمة. على سبيل المثال ، يمكنك إعداد GPU في BertQuestionAnswerer
على النحو التالي:
// 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);
اكتشف المزيد من إعدادات المسرع المتقدمة هنا .
مثال على استخدام Coral Edge TPU في Python
قم بتكوين Coral Edge TPU في الخيارات الأساسية للمهمة. على سبيل المثال ، يمكنك إعداد Coral Edge TPU في ImageClassifier
على النحو التالي:
# 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)
مثال على استخدام Coral Edge TPU في C ++
الخطوة 1. اعتمد على المكون الإضافي لمندوب Coral Edge TPU في هدف بناء bazel ، مثل:
deps = [
"//tensorflow_lite_support/acceleration/configuration:edgetpu_coral_plugin", # for Coral Edge TPU
]
الخطوة 2. قم بتكوين Coral Edge TPU في خيارات المهام. على سبيل المثال ، يمكنك إعداد Coral Edge TPU في ImageClassifier
على النحو التالي:
// 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();
الخطوة الثالثة. قم بتثبيت حزمة libusb-1.0-0-dev
على النحو التالي. إذا كان مثبتًا بالفعل ، فانتقل إلى الخطوة التالية.
# On the Linux
sudo apt-get install libusb-1.0-0-dev
# On the macOS
port install libusb
# or
brew install libusb
الخطوة 4. قم بالتجميع باستخدام التكوينات التالية في أمر 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.
جرب أداة Task Library CLI التجريبية مع أجهزة Coral Edge TPU الخاصة بك. استكشف المزيد عن طرز Edge TPU سابقة التصنيع وإعدادات Edge TPU المتقدمة .
مثال على استخدام Core ML المندوب في C ++
يمكن العثور على مثال كامل في Image Classifier Core ML المندوب .
الخطوة الأولى: اعتمد على المكوّن الإضافي Core ML في هدف بناء bazel ، مثل:
deps = [
"//tensorflow_lite_support/acceleration/configuration:coreml_plugin", # for Core ML Delegate
]
الخطوة 2. قم بتكوين Core ML Delegate في خيارات المهام. على سبيل المثال ، يمكنك إعداد Core ML Delegate في ImageClassifier
على النحو التالي:
// 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();