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

Метод get_input_details класса Interpreter

Метод get_input_details класса Interpreter возвращает список словарей, описывающих входные тензоры интерпретируемой модели. Для каждого входа в словаре содержатся ключи name, index, shape, shape_signature, dtype, quantization и quantization_parameters. Метод не принимает параметров и вызывается после загрузки модели в интерпретатор.

Синтаксис

interpreter.get_input_details()

Пример

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

import tensorflow as tf import numpy as np model = tf.keras.Sequential([ tf.keras.layers.Input(shape=(3,)), tf.keras.layers.Dense(2) ]) converter = tf.lite.TFLiteConverter.from_keras_model(model) tflite_model = converter.convert() interpreter = tf.lite.Interpreter(model_content=tflite_model) interpreter.allocate_tensors() details = interpreter.get_input_details() print(details)

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

[{'name': 'serving_default_input_layer:0', 'index': 0, 'shape': array([1, 3], dtype=int32), 'shape_signature': array([-1, 3], dtype=int32), 'dtype': <class 'numpy.float32'>, 'quantization': (0.0, 0), 'quantization_parameters': {'scales': array([], dtype=float32), 'zero_points': array([], dtype=int32), 'quantized_dimension': 0}, 'sparsity_parameters': {}}]

Пример

Давайте выведем отдельные поля первого входного тензора - имя, форму и тип данных:

import tensorflow as tf model = tf.keras.Sequential([ tf.keras.layers.Input(shape=(3,)), tf.keras.layers.Dense(2) ]) converter = tf.lite.TFLiteConverter.from_keras_model(model) tflite_model = converter.convert() interpreter = tf.lite.Interpreter(model_content=tflite_model) interpreter.allocate_tensors() details = interpreter.get_input_details() print(details[0]['name']) print(details[0]['shape']) print(details[0]['dtype'])

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

"serving_default_input_layer:0" [1 3] <class 'numpy.float32'>

Пример

Давайте подадим данные на вход модели, используя индекс и форму из get_input_details, а затем получим результат:

import tensorflow as tf import numpy as np model = tf.keras.Sequential([ tf.keras.layers.Input(shape=(3,)), tf.keras.layers.Dense(2) ]) converter = tf.lite.TFLiteConverter.from_keras_model(model) tflite_model = converter.convert() interpreter = tf.lite.Interpreter(model_content=tflite_model) interpreter.allocate_tensors() input_details = interpreter.get_input_details() input_index = input_details[0]['index'] data = np.array([[1.0, 2.0, 3.0]], dtype=np.float32) interpreter.set_tensor(input_index, data) interpreter.invoke() output_details = interpreter.get_output_details() res = interpreter.get_tensor(output_details[0]['index']) print(res)

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

[[1.234 2.345]]

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

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