РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
673 of 824 menu

Класс Interpreter

Класс Interpreter представляет собой интерпретатор моделей TensorFlow Lite. Он загружает модель из файла, управляет входными и выходными тензорами, а также выполняет прямой проход по графу модели. Первым параметром в конструктор передается путь к файлу модели, вторым - количество потоков, третьим - список экспериментальных опций.

Синтаксис

tf.lite.Interpreter( model_path, num_threads=None, experimental_op_resolver_type=None, experimental_preserve_all_tensors=False )

Пример

Давайте создадим простую модель Keras, сохраним ее в формате TensorFlow Lite и загрузим через интерпретатор:

import tensorflow as tf tf.random.set_seed(0) model = tf.keras.Sequential([ tf.keras.layers.Dense(1, input_shape=(1,)) ]) model.compile(optimizer='sgd', loss='mse') converter = tf.lite.TFLiteConverter.from_keras_model(model) tflite_model = converter.convert() with open('model.tflite', 'wb') as f: f.write(tflite_model) interpreter = tf.lite.Interpreter(model_path='model.tflite') print(interpreter)

Результат выполнения кода:

<tensorflow.lite.python.interpreter.Interpreter object at 0x...>

Пример

Давайте выделим тензоры, получим детали входа и выхода, а затем выполним вывод модели:

import tensorflow as tf tf.random.set_seed(0) model = tf.keras.Sequential([ tf.keras.layers.Dense(1, input_shape=(1,)) ]) model.compile(optimizer='sgd', loss='mse') converter = tf.lite.TFLiteConverter.from_keras_model(model) tflite_model = converter.convert() with open('model.tflite', 'wb') as f: f.write(tflite_model) interpreter = tf.lite.Interpreter(model_path='model.tflite') interpreter.allocate_tensors() input_details = interpreter.get_input_details() output_details = interpreter.get_output_details() print(input_details[0]['shape']) print(output_details[0]['shape'])

Результат выполнения кода:

[1 1] [1 1]

Пример

Давайте передадим входные данные в интерпретатор, вызовем метод invoke и получим результат:

import tensorflow as tf import numpy as np tf.random.set_seed(0) model = tf.keras.Sequential([ tf.keras.layers.Dense(1, input_shape=(1,)) ]) model.compile(optimizer='sgd', loss='mse') converter = tf.lite.TFLiteConverter.from_keras_model(model) tflite_model = converter.convert() with open('model.tflite', 'wb') as f: f.write(tflite_model) interpreter = tf.lite.Interpreter(model_path='model.tflite') interpreter.allocate_tensors() input_details = interpreter.get_input_details() output_details = interpreter.get_output_details() input_data = np.array([[5.0]], dtype=np.float32) interpreter.set_tensor(input_details[0]['index'], input_data) interpreter.invoke() res = interpreter.get_tensor(output_details[0]['index']) print(res)

Результат выполнения кода:

[[...]]

Смотрите также

  • метод allocate_tensors,
    который выделяет память под тензоры модели
  • метод invoke,
    который выполняет вывод модели
  • метод get_input_details,
    который возвращает информацию о входных тензорах
  • метод get_output_details,
    который возвращает информацию о выходных тензорах
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить