Можем ли мы запустить tenorflow lite на Linux? Или только для android и ios

Привет, есть ли возможность запустить tenorflow lite на платформе Linux? Если да, то как мы можем написать код на java / C ++ / python для загрузки и запуска моделей на платформе Linux? Я знаком с bazel и успешно создал приложение для Android и ios с помощью tensorflow lite.


person Shubham srivastava    schedule 20.12.2018    source источник


Ответы (5)


Я думаю, что другие ответы совершенно неверны.

Послушайте, я расскажу вам свой опыт ... Я работаю с Django много лет, и я использую обычный тензорный поток, но была проблема с наличием 4 или 5 или более моделей в одном проекте. Не знаю, знакомы ли вы с Gunicorn + Nginx. Это генерирует воркеров, поэтому, если у вас есть 4 модели машинного обучения, для каждого воркера он умножается, если у вас 3 воркера, у вас будет 12 моделей, предварительно загруженных в ОЗУ. Это совершенно неэффективно, потому что, если ОЗУ переполнится, ваш проект упадет или на самом деле ответы службы будут медленнее.

Итак, здесь на помощь приходит Tensorflow lite. Переход с модели тензорного потока на тензорный поток улучшает и делает вещи намного более эффективными. Времена сокращаются до абсурда. Кроме того, Django и Gunicorn можно настроить так, чтобы модель предварительно загружалась и компилировалась одновременно. Таким образом, каждый раз, когда API израсходован, он генерирует только прогноз, который помогает вам сделать каждый вызов API длительностью в доли секунды. В настоящее время у меня есть проект с 14 моделями и 9 рабочими, вы можете понять масштабы этого с точки зрения оперативной памяти. И помимо выполнения тысяч дополнительных вычислений, помимо машинного обучения, вызов API не занимает более 2 секунд. Теперь, если бы я использовал обычный тензорный поток, это заняло бы как минимум 4 или 5 секунд.

Таким образом, если вы можете использовать tenorflow lite, я использую его ежедневно в Windows, MacOS и Linux, нет необходимости использовать Docker вообще. Просто файл на Python и все. Если у вас есть сомнения, вы можете без проблем спросить меня.

Вот пример проекта Django + Tensorflow Lite.

person Nouvellie    schedule 21.04.2020

Можно запустить (но работает медленнее, чем оригинальный tf)

Пример

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

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

# Get quantization info to know input type
quantization = None
using_type = input_details[0]['dtype']
if dtype is np.uint8:
    quantization = input_details[0]['quantization']

# Get input shape
input_shape = input_details[0]['shape']

# Input tensor
input_data = np.zeros(dtype=using_type, shape=input_shape)

# Set input tensor, run and get output tensor
interpreter.set_tensor(input_details[0]['index'], input_data)
interpreter.invoke()
output_data = interpreter.get_tensor(output_details[0]['index'])
person Aleksandr Kondratyev    schedule 19.01.2019
comment
Не отвечает на заданный вопрос. - person Stefan Becker; 19.01.2019
comment
Шубхам Сривастава: Привет, есть ли возможность запустить tenorflow lite на платформе Linux? Камил Цук ответил, что это невозможно. Но у меня есть опыт запуска модели tflite в Linux (как pc, так и Rpi) с использованием скрипта Python, основное содержание которого указано выше. - person Aleksandr Kondratyev; 21.01.2019
comment
Мой опыт показывает, что это не медленнее, если у вас есть многопоточные ядра для TFLite. - person freedom; 28.01.2019
comment
Почему будет медленнее? Это должно быть быстрее, потому что график оптимизирован при экспорте в формат .tflite. - person mrgloom; 27.02.2019
comment
Поскольку ядра среды выполнения tensorflow lite оптимизированы для работы на архитектуре Arm (или процессоре Apple), а не на архитектуре x86-64. - person Aleksandr Kondratyev; 28.02.2019

Я согласен с Nouvellie. Это возможно и стоит потраченного времени. Я разработал модель на своем 32-процессорном сервере Ubuntu 18.04 и экспортировал ее в tflite. Модель работала на моем сервере ubuntu за 178 секунд. На моем raspberry pi4 с памятью 4 ГБ реализация tflite работала за 85 секунд, что вдвое меньше, чем на моем сервере. Когда я установил tflite на свой сервер, время работы упало до 22 секунд, что в 8 раз увеличило производительность и теперь почти в 4 раза быстрее, чем rpi4.

Для установки на python мне не нужно было собирать пакет, но я мог использовать один из готовых интерпретаторов здесь:

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

У меня Ubuntu 18.04 с python 3.7.7. Итак, я запустил pip install с пакетом Linux python 3.7:

pip3 установить https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp37-cp37m-linux_x86_64.whl

Затем импортируйте пакет с помощью:

из tflite_runtime.interpreter import Interpreter

Предыдущие сообщения показывают, как использовать tflite.

person TomT    schedule 06.06.2020

Из Tensorflow lite

TensorFlow Lite - это легкое решение TensorFlow для мобильных и встроенных устройств.

Tensorflow lite - это форк тензорного потока для встраиваемых устройств. Для ПК просто используйте оригинальный тензорный поток.

Из github tensorflow:

TensorFlow - это программная библиотека с открытым исходным кодом.

TensorFlow provides stable Python API and C APIs as well as without API backwards compatibility guarantee like C++, Go, Java, JavaScript and Swift.

We support CPU and GPU packages on Linux, Mac, and Windows.

>>> import tensorflow as tf
>>> tf.enable_eager_execution()
>>> tf.add(1, 2)
3
>>> hello = tf.constant('Hello, TensorFlow!')
>>> hello.numpy()
'Hello, TensorFlow!'
person KamilCuk    schedule 20.12.2018

Да, вы можете скомпилировать Tensorflow Lite для работы на платформах Linux даже с контейнером Docker. См. Демонстрацию: https://sconedocs.github.io/tensorflowlite/

person Do Do    schedule 10.02.2019