Caffe

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Caffe
Тип среда для глубинного обучения
Автор Yangqing Jia
Разработчик Berkeley Vision and Learning Center
Написана на C++
Операционная система Linux, macOS, Windows[1]
Последняя версия 1.0[2] (18 апреля 2017; 2 года назад (2017-04-18))
Лицензия 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[en], победившую в 2012 году в соревновании по распознаванию изображений ImageNet[12], и GoogLeNet[en], победившую в соревнованиях ImageNet 2014 года[13]

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

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

Приложения[править | править код]

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

См. также[править | править код]

Примечания[править | править код]

Ссылки[править | править код]