Не существует общего механизма для преобразования модели машинного обучения Python в код C ++, так как для кода Python требуется полная реализация во время выполнения.
Мне также нужно было запускать классификаторы на низкихвстроенные устройства питания / микроконтроллеры.И начали реализовывать некоторые из перечисленных вами алгоритмов во встроенном дружественном Си, основываясь на моделях, обученных по scikit-learn.
- Наивный Байес: embayes
- СлучайноЛеса / деревья решений: emtrees .В конце концов также деревья с градиентным усилением (XGBoost, LightGBM).
Существуют и другие доступные проекты для встроенных классификаторов:
- Нейронные сети. uTensor позволяет запускать модели TensorFlow Lite на ARM Cortex с использованием CMSIS-NN.
- K-ближайший сосед (kNN).Классический kNN очень прост в реализации.Но поскольку в нем хранятся все обучающие образцы, размер модели обычно проблематичен для встроенных устройств.Было предложено много альтернатив, например ProtoNN .Реализовано в ELL
Для других алгоритмов вы можете найти различные реализации C / C ++, но большинство предназначены для использования с операционной системой (например, Linux).В зависимости от того, насколько ограничено ваше устройство, можно использовать их повторно.Тогда вам нужно только реализовать экспорт модели из Python и импорт модели в библиотеку C ++.