Помогают защитить Большой Барьерный Риф с TensorFlow на Kaggle Присоединяйтесь вызов

Библиотека задач TensorFlow Lite

Библиотека задач TensorFlow Lite содержит набор мощных и простых в использовании библиотек для конкретных задач, позволяющих разработчикам приложений создавать возможности машинного обучения с TFLite. Он предоставляет оптимизированные готовые интерфейсы моделей для популярных задач машинного обучения, таких как классификация изображений, вопросы и ответы и т. Д. Интерфейсы моделей специально разработаны для каждой задачи для достижения максимальной производительности и удобства использования. Библиотека задач работает на разных платформах и поддерживается на Java, C ++ и Swift.

Чего ожидать от библиотеки задач

  • Чистые и четко определенные API, которые могут использовать не специалисты по машинному обучению.
    Вывод можно сделать всего за 5 строк кода. Используйте мощные и простые в использовании API-интерфейсы в библиотеке задач в качестве строительных блоков, которые помогут вам легко разрабатывать машинное обучение с TFLite на мобильных устройствах.

  • Сложная, но общая обработка данных
    Поддерживает общее видение и логику обработки естественного языка для преобразования ваших данных в формат данных, требуемый моделью. Предоставляет одну и ту же общую логику обработки для обучения и вывода.

  • Высокая производительность
    Обработка данных займет не более нескольких миллисекунд, что обеспечит быстрый вывод с использованием TensorFlow Lite.

  • Расширяемость и настройка
    Вы можете использовать все преимущества инфраструктуры библиотеки задач и легко создавать собственные API-интерфейсы вывода для Android / iOS.

Поддерживаемые задачи

Ниже приведен список поддерживаемых типов задач. Ожидается, что список будет расти по мере того, как мы продолжаем предоставлять все больше и больше вариантов использования.

Запуск библиотеки задач с делегатами

Делегаты включить аппаратное ускорение моделей TensorFlow Lite за счет использования на устройстве ускорителей , таких как GPU и Корал Эдж ТПУ . Использование их для операций нейронной сети дает огромные преимущества с точки зрения задержки и энергоэффективности. Например, графические процессоры могут обеспечить ДО 5x убыстрение латентности на мобильных устройствах, и Корал Край TPUs умозаключение в 10 раз быстрее , чем настольных процессоров.

Библиотека задач обеспечивает простую настройку и варианты возврата для настройки и использования делегатов. В API задач теперь поддерживаются следующие ускорители:

Ядро ML делегат для прошивки и ускорение поддерживает в Task Java / Swift / Web API в ближайшее время.

Пример использования графического процессора на Android в Java

Шаг 1. Добавьте графический делегат библиотеки плагинов для вашего модуля 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:0.3.0'
}

Шаг 2. Настройка графического делегата в параметрах задачи через BaseOptions . Например, вы можете настроить GPU в ObjectDetecor следующим образом :

// 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 ++

Шаг 1. Положитесь на подключаемый модуль делегата 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 на C ++

Шаг 1. Положитесь на плагин делегата Coral Edge TPU в целевой сборке bazel, например:

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

Шаг 2. Настройте Coral Edge TPU в параметрах задачи. Например, вы можете настроить Coral Грань ТП в 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();

Шаг 3. Установите 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 C демонстрационный инструмент с устройствами Coral края ТПА. Исследуйте больше на pretrained модели пограничного ТПУ и расширенные настройки пограничного ТПУ .