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, с которым вы работаете обычно. Начинающим могут быть интересны вводные темы и наше руководство по участию в разработке.