Рубрика: Программирование

Алгоритмы и структуры данных как база для AI и embedded-разработчика

В AI и embedded-разработке львиная доля времени уходит совсем не на «магические» модели, красивые графики или подбор очередного датчика. На практике всё обычно упирается в более приземлённые вещи: как быстро и без ошибок обработать поток данных, как уложиться в память, как не посадить батарею лишними копированиями и как сделать так, чтобы код вёл себя предсказуемо […]

API простыми словами: как программы и устройства обмениваются данными

Введение: почему нужно понимать API

Когда я только начинал писать код для микроконтроллеров, термин API казался чем-то из мира «большой» разработки, далёким от реальных плат, шин и датчиков. На практике всё быстро расставило по местам. Как только появляется задача связать устройство, сервер, мобильное приложение или внешнюю модель машинного обучения, без понимания API начинаются сбои на […]

C и C++ в embedded-проектах: какие задачи решает каждый язык

В embedded-разработке выбор между C и C++ почти никогда не сводится к спору «что современнее». На практике это инженерское решение, завязанное на ограничения железа, требования по времени отклика, размер прошивки, состав команды и жизненный цикл продукта. Я начинал с чистого C на ARM Cortex-M, где любая неочевидная абстракция сразу проявлялась в размере бинарника, энергопотреблении или […]

Python для машинного обучения: с чего начать инженеру

Когда я впервые попробовал запустить нейросеть на Raspberry Pi, довольно быстро стало ясно: просто «знать Python» и понимать Python как рабочий инструмент для машинного обучения — это разные уровни. В первом случае речь про синтаксис, базовые структуры данных и бытовую автоматизацию. Во втором — про экосистему библиотек, работу с данными, понимание того, как устроены модели, и, главное, […]

Обработка данных на Python для AI-проектов: базовый стек и первые шаги

В AI-проектах данные почти всегда съедают основную часть времени. Это не красивая фигура речи, а обычная инженерная реальность: модель можно поднять сравнительно быстро, а вот собрать, проверить, очистить и привести входные данные к нормальному виду — уже отдельная работа. Если пропустить этот этап, дальше начинаются знакомые проблемы: обучение нестабильное, метрики скачут, на тесте всё выглядит прилично, […]