#python #tensorflow #tensorflow-lite
Вопрос:
Я обучил модель ssd (для обнаружения объектов), используя предварительно обученную модель SSD от Google, и преобразовал ее в tflite. Я обучил его 10 классам и преобразовал в tflite. Ниже приведен код, который я использовал для вызова преобразованной модели tflite для проверки результатов
import tensorflow as tf
MODEL_PATH = 'tflite_model_path'
IMAGE_PATH = 'image of .jpeg or .png format'
interpreter = tf.lite.Interpreter(model_path=MODEL_PATH)
interpreter.allocate_tensors()
img = cv2.imread(IMAGE_PATH)
image_np = np.array(img)
resized_image = tf.image.resize(image_np, [320, 320])
input_data = tf.convert_to_tensor(np.expand_dims(resized_image, 0), dtype=tf.uint8)
interpreter.set_tensor(input_details[0]['index'], input_data)
interpreter.invoke()
output_data = interpreter.get_tensor(output_details[0]['index'])
print(output_data)
[[0.05507272 0.6531384 0.94264597 1.0628431 ]
[0.09443301 0.23600875 0.86310023 0.59367293]
[0.28634408 0.27470273 0.8326082 0.4465307 ]
[0.04376397 0.27534395 0.92427313 0.9200937 ]
[0.00423892 0.824869 0.09153695 0.9980754 ]
[0.63915586 0.6903409 0.9311851 0.97774005]
[0.11331517 0.25821632 0.67732155 0.4566245 ]
[0.4935118 0.27333832 0.82703865 0.4118209 ]
[0.04359788 0.68944013 0.39454672 1.0057622 ]
[0.3145248 0.13302818 1.0334518 0.9483361 ]]]
Теперь, когда я вызываю свою модель tflite с помощью интерпретатора tflite, мне не ясны некоторые вещи:
- Что
output_details
такое возвращение? - Форма
output_details
естьtf.Tensor([ 1 10 4], shape=(3,), dtype=int32)
. Что представляет собой эта форма и эти числа? - Как преобразовать этот вывод в задачу, соответствующую каждому классу?
Комментарии:
1. Эта модель предназначена для обнаружения объектов? Для чего вы его тренировали?
2. Да, это для обнаружения объектов. Я тренировал его для 10 объектов
3. Поэтому я предполагаю, что они являются координатами для каждого объекта, идентифицируемого моделью. Вы должны увидеть исходную модель и то,как эти координаты преобразуются в прямую с левыми, верхними, правыми и нижними значениями.
4. Ты мог бы. быть правильным, но как тогда получить вероятности каждого объекта?
5. Существует вероятность того, что output_data содержит также другую информацию, другие массивы, которые не печатаются при выполнении печати(output_data). Просмотрите файл tflite с помощью netron.app, чтобы просмотреть выходные данные, а также попробуйте распечатать(выходные данные[0]), распечатать(выходные данные[1])… чтобы узнать, есть ли дополнительная информация.