Сохранение обученной нейронной сети из keras в качестве одного класса C ++ - PullRequest
0 голосов
/ 03 апреля 2020

Я начал тренировать свои первые нейронные сети с помощью керас в python. Пока все работает нормально, но я бы хотел использовать обученные классификаторы в c или c ++ с не слишком большими накладными расходами. 1. Я не хочу ссылаться на библиотеку tenorflow 2. Мне также не нужно менять свою модель без перекомпиляции кода.

Я обнаружил на github разные проекты (например, ). https://github.com/gosha20777/keras2cpp), которые позволяют экспортировать модель keras в некоторый указанный файл c и загрузить этот файл с предоставленными классами c ++ для выполнения предсказаний. Это работает нормально, но все еще обладает большой функциональностью, которая мне не нужна (например, загружать любую сеть во время выполнения).

Я имел в виду сценарий python, который генерирует один c ++ учебный класс. Все веса будут включены в (большой) cpp файл с заголовком, который выглядит примерно так:

class MyTrainedNetwork
{
public:
    MyTrainedNetwork();
    ~MyTrainedNetwork();

    std::vector<double> doPrediction(const std::vector<double>& inputData);

private:
    //helper functions
    //weights
    //...
};

У кого-нибудь была подобная проблема? Каким было ваше решение в конце концов? Есть ли в настоящее время проект для обеспечения чего-то подобного?

Я спрашиваю, потому что у меня очень маленькая сеть с всего ~ 100 параметрами, которую я хотел бы запустить на 8-битном микроконтроллере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...