Chainer
Chainer — открытая библиотека для глубокого обучения, полностью написанная на Python на основе библиотек NumPy и CuPy. Разработка ведётся японской компанией Preferred Networks при участии таких компаний, как IBM, Intel, Microsoft и Nvidia. Chainer выделяется своим ранним внедрением схемы «define-by-run» и эффективной работой на крупномасштабных системах. Первый выпуск состоялся в июне 2015 года, после чего проект получил широкую популярность в Японии. В 2017 году Chainer был включён в десятку лучших open source проектов по машинному обучению на Python по версии KDnuggets.
В декабре 2019 года Preferred Networks объявила о переходе своей исследовательской платформы с Chainer на PyTorch; после выпуска версии 7 для Chainer выпускаются только исправления ошибок и поддержка.
Общие сведения
| Chainer | |
|---|---|
| Тип | библиотека для глубокого обучения |
| Автор | Seiya Tokui |
| Разработчики | Preferred Networks, Inc., сообщество |
| Написана на | Python |
| Первый выпуск | 9 июня 2015 |
| Последняя версия | |
| Репозиторий | github.com/chainer/chain… |
| Лицензия | MIT |
| Сайт | chainer.org |
Define-by-run
Chainer стал первым фреймворком глубокого обучения, в котором был реализован подход define-by-run[2].[3] Традиционный способ обучения нейронных сетей состоял из двух этапов: сначала определялись фиксированные связи между математическими операциями (например, умножение матриц и нелинейные активации), после чего производилось само обучение. Такой подход называют define-and-run или статическим графом. Среди известных фреймворков, использующих этот способ, — Theano и TensorFlow. В противоположность им, в define-by-run (динамическом графе) связи в сети определяются не до начала обучения, а формируются по мере выполнения вычислений.
Одним из преимуществ этого подхода является его интуитивность и гибкость[4]. Если сеть содержит сложные управляющие конструкции, такие как условия и циклы, для статических графов требуется реализовывать специальные блоки для их поддержки. В define-by-run можно использовать встроенные конструкции программирования (например, if и for), что удобно при реализации рекуррентных нейронных сетей[5].[6]
Ещё одно преимущество — упрощение отладки[4]. В подходе define-and-run ошибка на этапе вычислений часто сложно локализовать, поскольку определение сети и место ошибки разнесены. В define-by-run можно просто приостановить вычисление стандартным отладчиком и проанализировать состояния переменных и данных.
После внедрения Chainer подход define-by-run стал популярным и был реализован во многих других фреймворках, включая PyTorch[7] и TensorFlow[4].
Расширения
Для Chainer разработано четыре основных расширения: ChainerMN, ChainerRL, ChainerCV и ChainerUI. ChainerMN позволяет использовать Chainer на нескольких графических процессорах с производительностью, значительно превосходящей другие фреймворки глубокого обучения[8]. Суперкомпьютер, запустивший Chainer на 1024 GPU, обработал 90 эпох набора данных ImageNet на архитектуре ResNet-50 за 15 минут, что в четыре раза быстрее предыдущего рекорда Facebook[9].[10] ChainerRL реализует современные алгоритмы глубокого обучения с подкреплением, а ChainerUI служит инструментом для управления и визуализации.
Применение
Примечания
- ↑ Release 7.8.1 — 2022.
- ↑ Tokui, Seiya; Oono, Kenta; Hido, Shohei; Clayton, Justin (2015). “Chainer: a next-generation open source framework for deep learning”. 29th Annual Conference on Neural Information Processing Systems (NIPS). 5.
- ↑ Shimada, Naoki. Deep Learning with Chainer. — Gijutsu-Hyohron, 14 сентября 2017. — P. 61. — ISBN 978-4774191867.
- ↑ 1 2 3 Eager Execution: An imperative, define-by-run interface to TensorFlow. Google Research Blog. Архивировано 31 октября 2017 года.
- ↑ Deep Learning With Dynamic Computation Graphs (ICLR 2017). Metadata.
- ↑ Hido, Shohei Complex neural networks made easy by Chainer (англ.). O'Reilly Media (8 ноября 2016). Дата обращения: 26 июня 2018. Архивировано 21 июля 2017 года.
- ↑ Perez, Carlos E. PyTorch, Dynamic Computational Graphs and Modular Deep Learning. Medium (20 января 2017). Архивировано 8 мая 2017 года.
- ↑ Big-in-Japan AI code 'Chainer' shows how Intel will gun for GPUs. The Register (7 апреля 2017). Дата обращения: 24 декабря 2017. Архивировано из оригинала 7 апреля 2017 года.
- ↑ Extremely Large Minibatch SGD: Training ResNet-50 on ImageNet in 15 Minutes. Дата обращения: 24 декабря 2017. Архивировано 27 июня 2018 года.
- ↑ Greene, Tristan Facebook's nerds bested by Japan's in the race to train AI. The Next Web (20 ноября 2017). Дата обращения: 24 ноября 2017. Архивировано из оригинала 22 ноября 2017 года.
- ↑ Know, Now You This neural network-based software will add colour to your drawings for free. Techly (15 февраля 2017). Дата обращения: 8 сентября 2017. Архивировано из оригинала 27 июня 2018 года.