s0me_nickname
@s0me_nickname

Какой язык наиболее актуален для переписывания нейросети с питона перед её размещением на робототехническом устройстве?

Некоторое время назад получил такую информацию, что нейросеть после обучения и перед помещением в продакшн переписывается с питона на некоторый другой язык, для экономии ресурсов (что, зная об умении питона расходовать память, выглядить очень логичным шагом). Из одного надёжного источника мне стало известно, что для этих целей обычно выбирается Golang. Но реальный источник у меня всего только один, и кроме этого в интернете можно найти информацию, что также применяют C++ и не только. Поэтому мне хотелось бы спросить у лиц, владеющих реальной информацией о переписывании обученных нейросетей с питона на что-то другое (если таковые здесь найдутся), о том, какой язык сейчас наиболее актуален для этого? В качестве "продакшена" меня конкретно интересуют робототехнические устройства (роботы-пылесосы, роботы-доставщики и беспилотные автомобили), но также было бы интересно узнать и об использовании описанного приёма и в других предметных областях.
  • Вопрос задан
  • 282 просмотра
Пригласить эксперта
Ответы на вопрос 2
@dmshar
Обученная нейросеть это по сути алгоритм, с помощью которого решается реальная задача. Алгоритм может быть разным, но чаше всего - это в конечном итоге некая математическая формула. Причем живущая не сама по себе, а взаимодействующая с другими компонентами системы (например - с системой управления того-же пылесоса, или системой управления автомобилями из ваших примеров). В свою очередь это предполагает, что эти системы уже функционируют на некоторых процессорах, встроенных в объект. Отсюда ответ - Нейросеть "в режиме продакшн" может и должна быть реализована на том языке, на котором имеется компилятор для вашего процессора. Как правило, это действительно "С", "С++" или "Go", но могут быть варианты. Надо смотреть и решать именно исходя из характеристик целевого вычислительного устройства (процессора).
P.S. Идеальный вариант, конечно, всегда ассемблер соответствующего процессора, как язык, позволяющий писать наиболее эффективные на этапе выполнения решения. Но позволительна такая роскошь с точки зрения наличия соответствующих разработчиков, стоимости, а также скорости разработки - другой вопрос. Наверное Тесла может себе такое позволить. А вот некий маленький стартап - не уверен.
Ответ написан
Комментировать
@mayton2019
Bigdata Engineer
Это точно не Golang. Поскольку цели и задачи которые ставились перед Golang - сильно отличаются от встраивания в бытовую технику. Это скорее всего C или С++ но вы должны это уточнять.

Вообще с таким сырым ТЗ ничего начинать нельзя. Узнайте хотя-бы модели и названия железок на которых это должно работать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы