Spec-Zone.ru › TensorFlow 1.15

tf.lite.Interpreter

Просмотреть исходный код на GitHub

Интерфейс интерпретатора для моделей TensorFlow Lite.

Просмотр псевдонимов

Псевдонимы совместимости для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.lite.Interpreter, `tf.compat.v2.lite.Interpreter`

tf.lite.Interpreter(
    model_path=None, model_content=None, experimental_delegates=None
)

Это делает интерпретатор TensorFlow Lite доступным в Python. Возможна работа с этим интерпретатором в многопоточной среде Python, но вы должны убедиться, что функции определённого экземпляра вызываются только из одного потока за раз. Таким образом, если вы хотите иметь 4 потока, одновременно выполняющие различные выводы, создавайте интерпретатор для каждого из них как данные, локальные для потока. Аналогично, если вы вызываете invoke() в одном потоке на одном интерпретаторе, но хотите использовать tensor() в другом потоке после завершения, вы должны использовать синхронизирующее средство между потоками, чтобы убедиться, что invoke вернул значение до вызова tensor().

Аргументы
model_path Путь к файлу TF-Lite Flatbuffer.
model_content Содержание модели.
experimental_delegates Экспериментально. Подлежит изменению. Список объектов TfLiteDelegate, возвращаемых lite.load_delegate().
Исключения
ValueError Если интерпретатор не смог создать интерпретатор.

Методы

allocate_tensors

Просмотреть исходный код

allocate_tensors()

get_input_details

Просмотреть исходный код

get_input_details()

Получает детали входных данных модели.

Возвращает
Список входных данных.

get_output_details

Просмотреть исходный код

get_output_details()

Получает детали выходных данных модели.

Возвращает
Список выходных данных.

get_tensor

Просмотреть исходный код

get_tensor(
    tensor_index
)

Получает значение входного тензора (получает копию).

Если вы хотите избежать копирования, используйте tensor(). Эта функция не может использоваться для чтения промежуточных результатов.

Аргументы
tensor_index Индекс тензора для получения. Это значение можно получить из поля 'index' в get_output_details.
Возвращает
массив numpy.

get_tensor_details

Просмотреть исходный код

get_tensor_details()

Получает детали тензора для каждого тензора с валидными деталями тензора.

Тензоры, для которых не найдена необходимая информация о тензоре, не добавляются в список. Это включает временные тензоры без имени.

Возвращает
Список словарей, содержащих информацию о тензоре.

invoke

Просмотреть исходный код

invoke()

Вызов интерпретатора.

Убедитесь, что вы установили размеры входных данных, выделили тензоры и заполнили значения перед вызовом этой функции. Также обратите внимание, что эта функция освобождает GIL, чтобы сложные вычисления могли выполняться в фоновом режиме, в то время как интерпретатор Python продолжает работу. Никакие другие функции этого объекта не должны вызываться, пока вызов invoke() не завершится.

Исключения
ValueError При сбое в базовом интерпретаторе генерируется ValueError.

reset_all_variables

Просмотреть исходный код

reset_all_variables()

resize_tensor_input

Просмотреть исходный код

resize_tensor_input(
    input_index, tensor_size
)

Изменяет размер входного тензора.

Аргументы
input_index Индекс тензора входного значения. Это значение можно получить из поля 'index' в get_input_details.
tensor_size tensor_shape для изменения размера входного значения.
Исключения
ValueError Если интерпретатор не смог изменить размер входного тензора.

set_tensor

Просмотреть исходный код

set_tensor(
    tensor_index, value
)

Устанавливает значение входного тензора. Обратите внимание, что данные копируются value.

Если вы хотите избежать копирования, вы можете использовать функцию tensor() для получения буфера numpy, указывающего на входной буфер в интерпретаторе tflite.

Аргументы
tensor_index Индекс тензора, который нужно установить. Это значение можно получить из поля 'index' в get_input_details.
value Значение устанавливаемого тензора.
Исключения
ValueError Если интерпретатор не смог установить тензор.

tensor

Просмотреть исходный код

tensor(
    tensor_index
)

Возвращает функцию, предоставляющую представление numpy текущего буфера тензора.

Это позволяет читать и записывать в эти тензоры без копирования. Это более точно отражает интерфейс метода tensor() класса C++ Interpreter, отсюда и название. Будьте внимательны, не удерживайте эти ссылки на выходные данные через вызовы allocate_tensors() и invoke(). Эта функция не может использоваться для чтения промежуточных результатов.

Использование:

interpreter.allocate_tensors()
input = interpreter.tensor(interpreter.get_input_details()[0]["index"])
output = interpreter.tensor(interpreter.get_output_details()[0]["index"])
for i in range(10):
  input().fill(3.)
  interpreter.invoke()
  print("inference %s" % output())

Обратите внимание, как эта функция избегает прямого создания массива numpy. Это важно, чтобы не удерживать фактические представления numpy данных дольше, чем необходимо. В противном случае интерпретатор не может быть вызван, поскольку интерпретатор может изменить размер и сделать ссылки на тензоры недействительными. API NumPy не позволяет изменять базовые буферы.

НЕПРАВИЛЬНО:

input = interpreter.tensor(interpreter.get_input_details()[0]["index"])()
output = interpreter.tensor(interpreter.get_output_details()[0]["index"])()
interpreter.allocate_tensors()  # This will throw RuntimeError
for i in range(10):
  input.fill(3.)
  interpreter.invoke()  # this will throw RuntimeError since input,output
Аргументы
tensor_index Индекс тензора, который нужно получить. Это значение можно получить из поля 'index' в get_output_details.
Возвращает
Функция, которая может возвращать новый массив numpy, указывающий на внутреннее состояние тензора TFLite в любой момент. Функцию безопасно хранить вечно, но массив numpy хранить вечно небезопасно.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/lite/Interpreter

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API