Тензор потока: определить выходной шаг предварительно обученной модели CNN - PullRequest
1 голос
/ 05 февраля 2020

Я скачал и внедряю приложение ML, используя Tensorflow Lite Pos enet Модель . Результатом этой модели является тепловая карта, которая является частью CNN, с которой я новичок.

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

keypointPositions = heatmapPositions * outputStride + offsetVectors

Но документация не определяет выходной шаг. Есть ли информация или способ, доступный в тензорном потоке, который я могу использовать, чтобы получить выходной шаг для этой (любой) предварительно обученной модели?

  • Форма ввода для img: (257,257,3)
  • Форма вывода: (9,9,17) (1 [9x9] тепловая карта для 17 различных ключевых точек)
import tensorflow as tf
import numpy as np
import json

model = tf.lite.Interpreter('models\posenet_mobilenet_v1_100_257x257_multi_kpt_stripped.tflite')
model.allocate_tensors()

with open('model_details.json', 'w') as outfile:
     info = dict(list(enumerate(model.get_tensor_details())))
     s = json.dumps(str(info))
     outfile.write(s)

1 Ответ

2 голосов
/ 05 февраля 2020

Выходной шаг может быть получен из следующего уравнения:

resolution = ((InputImageSize - 1) / OutputStride) + 1

Пример : входное изображение с шириной из 225 пикселей и вывод с шагом 16 приводит к выходному размеру 15

15 = ((225 - 1) / 16) + 1

Для модели tflite Pos eNet:

9 = ((257-1)/ x) + 1 x = 32, поэтому выходной сигнал составляет 32

Источник

...