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 служит инструментом для управления и визуализации.

Применение

Chainer используется как основной фреймворк для PaintsChainer, сервиса автоматической раскраски чёрно-белых и контурных рисунков с минимальным вмешательством пользователя[11].

Примечания

  1. Release 7.8.1 — 2022.
  2. 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.
  3. Shimada, Naoki. Deep Learning with Chainer. — Gijutsu-Hyohron, 14 сентября 2017. — P. 61. — ISBN 978-4774191867.
  4. 1 2 3 Eager Execution: An imperative, define-by-run interface to TensorFlow. Google Research Blog. Архивировано 31 октября 2017 года.
  5. Deep Learning With Dynamic Computation Graphs (ICLR 2017). Metadata.
  6. Hido, Shohei Complex neural networks made easy by Chainer (англ.). O'Reilly Media (8 ноября 2016). Дата обращения: 26 июня 2018. Архивировано 21 июля 2017 года.
  7. Perez, Carlos E. PyTorch, Dynamic Computational Graphs and Modular Deep Learning. Medium (20 января 2017). Архивировано 8 мая 2017 года.
  8. Big-in-Japan AI code 'Chainer' shows how Intel will gun for GPUs. The Register (7 апреля 2017). Дата обращения: 24 декабря 2017. Архивировано из оригинала 7 апреля 2017 года.
  9. Extremely Large Minibatch SGD: Training ResNet-50 on ImageNet in 15 Minutes. Дата обращения: 24 декабря 2017. Архивировано 27 июня 2018 года.
  10. Greene, Tristan Facebook's nerds bested by Japan's in the race to train AI. The Next Web (20 ноября 2017). Дата обращения: 24 ноября 2017. Архивировано из оригинала 22 ноября 2017 года.
  11. Know, Now You This neural network-based software will add colour to your drawings for free. Techly (15 февраля 2017). Дата обращения: 8 сентября 2017. Архивировано из оригинала 27 июня 2018 года.

Ссылки