Эта статья предназначена для того, чтобы больше рассказать о том, как TFLite быстро и экономично выполняет логические выводы по всем различным типам периферийных устройств.

У нас есть другой набор периферийных устройств, таких как устройства IoT, мобильные устройства, встроенные устройства и т. д. Как TFLite делает логические выводы плавно и элегантно. Чтобы понять это, давайте погрузимся в это.

Что такое переводчик?

Как мы знаем, TFLite состоит из набора инструментов, а TFLite состоит из двух основных компонентов:

  1. Конвертер
  2. Устный переводчик

Конвертер поможет нам преобразовать модели глубокого обучения в формат TFLite, а интерпретатор облегчит нам жизнь при выводе.

Интерпретатор TensorFlow Lite, который запускает специально оптимизированные модели на различных типах оборудования, включая мобильные телефоны, встроенные устройства Linux и микроконтроллеры.

Интерпретаторы TFLite взаимозаменяемо называются логическими выводами. Термин вывод относится к процессу выполнения модели TensorFlow Lite на периферийных устройствах, чтобы делать прогнозы на основе пользовательского ввода. Чтобы выполнить вывод с помощью облегченной модели TensorFlow, вы должны запустить ее через интерпретатор.

Интерпретатор TFLite спроектирован таким образом, чтобы быть экономичным и быстрым. Для достижения этой цели он использует статическое упорядочение графов и настраиваемый распределитель памяти, чтобы обеспечить минимальную задержку загрузки, инициализации и выполнения.

Шаг вывода:

API вывода TensorFlow предоставляются для наиболее распространенных мобильных/встроенных платформ, таких как Android, iOS и Linux, на нескольких языках программирования. Во всех библиотеках API TensorFlow Lite позволяет загружать модели, подавать входные данные и извлекать выходные данные.

Интерпретатор TFLite в целом выполняет следующие шаги:

  1. Загрузка модели:-

Первым и более важным шагом является загрузка модели .tflite в память, которая содержит график выполнения.

2. Преобразование данных:-

Модель не понимает необработанные входные данные. Чтобы преобразовать необработанные данные в формат, понятный модели, вам необходимо преобразовать данные. Например, для модели компьютерного зрения вам необходимо изменить размер входного изображения, а затем предоставить это изображение модели.

3. Вывод результатов:-

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

4. Интерпретация вывода:-

После третьего шага мы получим некоторый вывод после вывода, но конечный пользователь этого не поймет. Результаты моделирования в большинстве случаев представляют собой вероятности или приблизительные значения. Мы интерпретировали этот результат как осмысленный вывод.

Пример:-

Давайте возьмем вывод модели с использованием python

import numpy as np
import tensorflow as tf

# Load TFLite model and allocate tensors.
interpreter = tf.lite.Interpreter(model_path="converted_model.tflite")
interpreter.allocate_tensors()

# Get input and output tensors.
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()

# Test model on random input data.
input_shape = input_details[0]['shape']
input_data = np.array(np.random.random_sample(input_shape), dtype=np.float32)
interpreter.set_tensor(input_details[0]['index'], input_data)

interpreter.invoke()

# The function `get_tensor()` returns a copy of the tensor data.
# Use `tensor()` in order to get a pointer to the tensor.
output_data = interpreter.get_tensor(output_details[0]['index'])
print(output_data)

Пример на С++, даже если язык изменится или подчеркивание платформы изменится, шаги одинаковы:

// Load the model
std::unique_ptr<tflite::FlatBufferModel> model =
    tflite::FlatBufferModel::BuildFromFile(filename);

// Build the interpreter
tflite::ops::builtin::BuiltinOpResolver resolver;
std::unique_ptr<tflite::Interpreter> interpreter;
tflite::InterpreterBuilder(*model, resolver)(&interpreter);

// Resize input tensors, if desired.
interpreter->AllocateTensors();

float* input = interpreter->typed_input_tensor<float>(0);
// Fill `input`.

interpreter->Invoke();
//output data
float* output = interpreter->typed_output_tensor<float>(0);

Вывод:-

В этой статье мы рассмотрели интерпретатор TFLite и шаги, связанные с выводом TFLite, и как это сделать.

Ссылка:-

https://www.tensorflow.org/lite/guide/inference

https://medium.com/techwasti/tensorflow-lite-deployment-523eec79c017

Побольше таких историй

Давайте подключимся к Stackoverflow, LinkedIn, Facebook и Twitter.