Как я могу сделать вывод для обученной нейронной сети, использующей C / C ++? - PullRequest
0 голосов
/ 12 апреля 2019

для моей магистерской работы мне придется сделать вывод с помощью предварительно построенной / предварительно обученной (с TensorFlow) модели глубокой нейронной сети. Я получил его в двух разных форматах (hdf5 / h5 и замороженный график = .pb). Вывод должен быть сделан на кластере, пока у нас работает только GPU-версия (с TensorRT и uff Model). Поэтому моя первая работа, по-видимому, заключается в том, чтобы сделать вывод на одном процессоре, прежде чем можно будет использовать его в кластере.

Мы используем модель в рамках моделирования вычислительной гидродинамики (CFD) - это также мое академическое образование, и, как вы можете себе представить, у меня мало знаний о глубоком обучении. В любом случае, моя задача не менять / обучать модель, а просто использовать ее для вывода. Наш CFD-код написан на C ++, который является единственным языком программирования, который я использую на продвинутом уровне (очевидно, нет проблем с использованием C, но я не имею представления о Python).

Пройдя много поисков в Google, я понял, что понятия не имею, с чего начать. Я думал, что можно будет пропустить все учебные и TensorFlow вещи. Я знаю, как работают нейронные сети и как они вычисляют свои выходные значения из своих входных значений. У меня также есть самые важные теоретические знания, но нет знаний в области программирования в этой области. Возможно ли как-то использовать модель, которую они мне дали (hdf5 / h5 или замороженный график) и построить код вывода, используя исключительно C или C ++? Я уже нашел C API и установил его в Docker-контейнере (где у меня также есть Tensorflow), но я действительно не уверен, каким будет следующий шаг. Что я могу сделать с C API? Как бы вы написали C / C ++ - код для вывода с DNN-моделью, которая готова к выводу из нее?

Привет и спасибо заранее,

tre95

1 Ответ

0 голосов
/ 12 апреля 2019

Opencv предоставил инструменты для запуска моделей глубокого обучения, но они только ограничены областью компьютерного зрения. Смотрите здесь .

Вы можете выполнять классификацию, обнаружение объектов, обнаружение лиц, обнаружение текста, сегментацию и т. Д. С помощью API, предоставляемого opencv. Эти примеры довольно просты.

Доступны как версия на Python, так и версия на С ++.

...