Конвертировать Pos eNet TensorFlow. js params в TensorFlow Lite - PullRequest
0 голосов
/ 11 апреля 2020

Я довольно новичок в TensorFlow, поэтому извиняюсь, если говорю что-то нелепое.

Я играл с Pos eNet моделью в браузер с использованием TensorFlow. js. В этом проекте я могу изменить алгоритм и параметры , чтобы получить лучшие результаты при обнаружении определенных поз. Наиболее важные параметры в моем случае использования - это Multiplier, Quant Bytes и Output Stride.

Пока все хорошо, у меня есть результаты, которые я хочу. Однако я хочу преобразовать эти результаты в TensorFlow Lite , чтобы использовать его в приложении iOS. Мне удалось найти модель Pos eNet в файле TensorFlow Lite (tflite), и я даже нашел пример iOS app , предоставленный TensorFlow, чтобы я мог загрузить файл модели и получить он работает на iOS.

Проблема в том, что ... Я не могу изменить параметры (множитель, квантовые байты и выходной шаг) в приложении iOS. Я нигде не могу найти, как я могу это сделать. Я попытался найти эти параметры в исходном коде приложения iOS, я попытался найти способы преобразования модели TensorFlow. js в TensorFlow Lite, чтобы я мог загрузить модель с необходимыми параметрами в приложении. но не повезло.

Я пишу этот пост, так что, возможно, вы, ребята, можете указать мне правильное направление, чтобы я мог "перевести" то, что у меня есть на TensorFlow. js в TensorFlow Lite.

РЕДАКТИРОВАТЬ:

Это то, что я узнал за последние пару дней:

TFLite предназначен для обслуживания фиксированной модели с облегченным временем выполнения. Таким образом, изменение параметров модели по требованию не является целью проектирования.

Я посмотрел на код TF. js для Pos eNet и нашел похожий дизайн. Кажется, вы можете изменить параметры, потому что они на самом деле имеют разные модели для каждого параметра. https://github.com/tensorflow/tfjs-models/blob/b72c10bdbdec6b04a13f780180ed904736fa52a5/posenet/src/checkpoints.ts#L37

Модели TFLite обычно не поддерживают динамические параметры c. Множитель выходного шага и количественные байты являются фиксированными параметрами при создании нейронной сети.

Итак, я хочу извлечь весовые коэффициенты из модели TF. js и затем поместить в существующий код Mobil eNet. .

И вот тут мне нужна помощь. Может ли кто-нибудь указать мне направление загрузки и изменения модели, чтобы я мог затем преобразовать ее в tflite со своими собственными параметрами?

EDIT2:

Я нашел репо это помогает мне конвертировать модели TF. js в TF Lite Griffin98 / posenet_tfjs2tflite . Я до сих пор не могу определить количество байт tho.

...