Мы используем API-интерфейс tenorflow C версии 1.13.1.
отсюда https://www.tensorflow.org/install/lang_c
Наша модель нейронной сети frozen_graph.pb размер 230 МБ с MobileNet архитектура.
Когда мы загружаем его, тензор потока выделяет около 1,1 ГБ при первом запуске сеанса, а затем объем памяти уменьшается до ~ 900 МБ и остается в этом значении.
Мы попробовали инструмент преобразования графа отсюда
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/graph_transforms/README.md для оптимизации графика.
Но только квантование кажется эффективным для уменьшения также размера модели и использования памяти. Но иногда мы не можем использовать его, так как квантование снижает точность модели на 15%.
Поскольку в настоящее время мы думаем, что единственный способ уменьшить размер модели и не оказать существенного влияния на точность - это
1) Переход на другой сервер, например, в MXNET и т. Д. *
2) Использовать технику перегонки знаний для переподготовки небольших моделей.
https://arxiv.org/pdf/1503.02531.pdf
Мы ожидаем, что выделение памяти для одной модели не превышает 150% двоичного размера.
Любое решение приемлемо.
Спасибо.