Caffe — Википедия

Caffe
Тип среда для глубинного обучения
Автор Yangqing Jia
Разработчик Berkeley Vision and Learning Center
Написана на C++
Операционные системы Linux, macOS, Windows[1]
Последняя версия 1.0[2] (18 апреля 2017; 7 лет назад (2017-04-18))
Репозиторий github.com/BVLC/caffe
Лицензия BSD[3]
Сайт caffe.berkeleyvision.org

Caffe — среда для глубинного обучения, разработанная Яньцинем Цзя (Yangqing Jia) в процессе подготовки своей диссертации в университете Беркли. Caffe является открытым программным обеспечением, распространяемым под лицензией BSD license.[4] Написано на языке C++, и поддерживает интерфейс на языке Python.[5]

Название Caffe произошло от сокращения «Convolution Architecture For Feature Extraction» (Свёрточная архитектура для извлечения признаков).

Яньцинь Цзя в университете Беркли создал среду Caffe для поддержки глубинного обучения. Ключевым вопросом диссертации было обеспечение эффективной параллельной обработки многомерных матричных операций, для чего было принято решение создать фреймворк на основе математической библиотеки MATLAB и мультипроцессорной архитектуры CUDA. Первоначальная разработка заняла только два месяца.[6] К проекту присоединились множество разработчиков и теперь его хостинг осуществляется через веб-сервис GitHub.[7]

В апреле 2017 Facebook объявил о создании Caffe2[8], который включает в себя новые возможности, в частности рекуррентные нейронные сети.

В мае 2018 команды Caffe2 и PyTorch объединились.[9] С тех пор код Caffe2 перенесён в репозиторий PyTorch и является частью последнего.

Характеристики

[править | править код]

Caffe поддерживает много типов машинного обучения, нацеленных в первую очередь на решение задач классификации и сегментации изображений. Caffe обеспечивает свёрточные нейронные сети, RCNN, долгую краткосрочную память и полносвязные нейронные сети.[10] При этом для ускорения обучения применяется система графических процессоров (GPU), поддерживаемая архитектурой CUDA и иcпользующих библиотеку CuDNN от фирмы Nvidia.[11]

Caffe позволяет использовать готовые промышленные конфигурации нейронных сетей, прошедшие апробацию. В комплект входит, в частности AlexNet[англ.], победившая в 2012 году в соревновании по распознаванию изображений ImageNet[12], и GoogLeNet[англ.], победившая в соревнованиях ImageNet 2014 года[13]

Caffe манипулирует блобами — многомерными массивами данных, которые используются в параллельных вычислениях и помещаются в CPU или GPU. Обучение в cвёрточной нейронной сети реализуется как параллельные многопроцессорные вычисления блобов от слоя к слою (прямым и обратным ходом). Solver (решатель) координирует весь процесс обучения — прямой ход от исходных к выходным данным, получение функции ошибок, обратный ход (Метод обратного распространения ошибки) назад от выходного слоя с использованием градиентов ошибок. При этом Caffe реализует различные стратегии обучения для Solverа.

В качестве входа используются данные из памяти, из базы данных или со внешних носителей информации. В качестве скрытых слоёв используются традиционные для свёрточной сети свёрточные слои, слои ReLU, пулинг, полносвязные слои, а также слои разворачивания (деконволюции) для сетей RNN. Обеспечены также многие другие типы слоёв, фильтров, преобразований данных и функций ошибок.

Приложения

[править | править код]

Caffe применяется в академических исследованиях, прототипов для стартапов, а также и для промышленного применения — распознавания изображений, речи или мультимедиа. Yahoo! также интегрировала Caffe со средой Apache Spark, создав распределённый фрэймворк CaffeOnSpark.[14]

Примечания

[править | править код]
  1. Microsoft/caffe. GitHub. Дата обращения: 22 июля 2017. Архивировано 22 апреля 2017 года.
  2. Release 1.0. Дата обращения: 22 июля 2017. Архивировано 2 августа 2017 года.
  3. caffe/LICENSE at master. GitHub. Дата обращения: 22 июля 2017. Архивировано 20 мая 2019 года.
  4. BVLC/caffe. GitHub. Дата обращения: 22 июля 2017. Архивировано 22 марта 2019 года.
  5. Comparing Frameworks: Deeplearning4j, Torch, Theano, TensorFlow, Caffe, Paddle, MxNet, Keras & CNTK. Дата обращения: 22 июля 2017. Архивировано из оригинала 29 марта 2017 года.
  6. The Caffe Deep Learning Framework: An Interview with the Core Developers. Embedded Vision. Дата обращения: 22 июля 2017. Архивировано 29 сентября 2017 года.
  7. Caffe: a fast open framework for deep learning. GitHub. Дата обращения: 22 июля 2017. Архивировано 22 марта 2019 года.
  8. Caffe2 Open Source Brings Cross Platform Machine Learning Tools to Developers. Дата обращения: 22 июля 2017. Архивировано 28 апреля 2019 года.
  9. Caffe2 and PyTorch join forces to create a Research + Production platform PyTorch 1.0. Дата обращения: 27 сентября 2018. Архивировано 27 сентября 2018 года.
  10. Caffe tutorial - vision.princeton.edu. Архивировано 5 апреля 2017 года.
  11. Deep Learning for Computer Vision with Caffe and cuDNN. Дата обращения: 22 июля 2017. Архивировано 1 декабря 2017 года.
  12. ImageNet Classification with Deep Convolutional Neural Networks. Дата обращения: 23 июля 2017. Архивировано 27 июля 2017 года.
  13. GoogLeNet. Дата обращения: 23 июля 2017. Архивировано из оригинала 4 августа 2017 года.
  14. "Yahoo enters artificial intelligence race with CaffeOnSpark". Архивировано 21 мая 2017. Дата обращения: 22 июля 2017.