Flux: библиотека Julia для машинного обучения

Flux — это библиотека для машинного обучения. Она является вполне самодостаточной и включает множество полезных встроенных инструментов, но при необходимости позволяет использовать и другие возможности языка Julia в полном объеме. Библиотека построена на ряде ключевых принципов:

  • Естественность действий. Во Flux относительно немного явных API. Вместо этого можно делать запись в математической форме, и скорость выполнения при этом не снижается.

  • Расширяемость по умолчанию. Библиотека Flux спроектирована с расчетом на высокую гибкость и производительность. Для расширения Flux достаточно использовать собственный код в рамках требуемой модели — все это высокоуровневый код Julia.

  • Отличное взаимодействие. Flux хорошо работает с любыми другими библиотеками Julia, от библиотеки для обработки изображений до решателей дифференциальных уравнений, не дублируя их.

Для поддержки GPU Nvidia также потребуется установить пакеты CUDA и cuDNN. Для поддержки GPU AMD установите пакет AMDGPU. Для ускорения на базе Apple Silicon установите пакет Metal.

Освоение Flux

На странице краткого руководства обучается простая нейронная сеть.

Далее в данном руководстве с самых азов рассматривается подход к моделям во Flux и принципы их работы, начиная с построения линии по точкам. После изучения данной документации можно обратиться к исходному коду Flux, который мы постарались сделать лаконичным и удобочитаемым. Это поможет вам разобраться в более сложных понятиях.

Есть также ряд учебников, посвященных построению конкретных моделей. Репозиторий model zoo может послужить отправной точкой для разработки множества других моделей. Наконец, на странице экосистемы перечислены пакеты, в которых определены модели Flux.

В разделе справки, помимо собственных функций Flux, приводятся также функции из некоторых сопутствующих пакетов: Zygote.jl (автоматическое дифференцирование), Optimisers.jl (обучение) и других.

Сообщество

Мы приглашаем всех присоединиться к нашему сообществу на форуме обсуждения Julia либо в чате Slack (канал #machine-learning). Если у вас возникли проблемы или вопросы, мы попытаемся вам помочь.

Если вы хотите внести свой вклад в работу над Flux, исходный код открыт всем и понятен — это такой же код Julia, с которым вы работаете обычно. Начинающим могут быть интересны вводные темы и наше руководство по участию в разработке.