Нарышкина, Анна Леонтьевна
- 1 year ago
- 0
- 0
Caffe — среда для глубинного обучения , разработанная (Yangqing Jia) в процессе подготовки своей диссертации в университете Беркли . Caffe является открытым программным обеспечением , распространяемым под лицензией BSD license . Написано на языке C++ , и поддерживает интерфейс на языке Python .
Название Caffe произошло от сокращения « Convolution Architecture For Feature Extraction » (Свёрточная архитектура для извлечения признаков).
в университете Беркли создал среду Caffe для поддержки глубинного обучения . Ключевым вопросом диссертации было обеспечение эффективной параллельной обработки многомерных , для чего было принято решение создать фреймворк на основе математической библиотеки MATLAB и мультипроцессорной архитектуры CUDA . Первоначальная разработка заняла только два месяца. К проекту присоединились множество разработчиков и теперь его хостинг осуществляется через веб-сервис GitHub .
В апреле 2017 Facebook объявил о создании Caffe2 , который включает в себя новые возможности, в частности рекуррентные нейронные сети .
В мае 2018 команды Caffe2 и PyTorch объединились. С тех пор код Caffe2 перенесён в репозиторий PyTorch и является частью последнего.
Caffe поддерживает много типов машинного обучения , нацеленных в первую очередь на решение задач классификации и сегментации изображений . Caffe обеспечивает свёрточные нейронные сети , RCNN, долгую краткосрочную память и полносвязные нейронные сети. При этом для ускорения обучения применяется система графических процессоров (GPU) , поддерживаемая архитектурой CUDA и иcпользующих библиотеку CuDNN от фирмы Nvidia .
Caffe позволяет использовать готовые промышленные конфигурации нейронных сетей, прошедшие апробацию. В комплект входит, в частности , победившая в 2012 году в соревновании по распознаванию изображений ImageNet , и , победившая в соревнованиях ImageNet 2014 года
Caffe манипулирует блобами — многомерными массивами данных, которые используются в параллельных вычислениях и помещаются в CPU или GPU . Обучение в cвёрточной нейронной сети реализуется как параллельные многопроцессорные вычисления блобов от слоя к слою (прямым и обратным ходом). Solver (решатель) координирует весь процесс обучения — прямой ход от исходных к выходным данным, получение функции ошибок, обратный ход ( Метод обратного распространения ошибки ) назад от выходного слоя с использованием градиентов ошибок. При этом Caffe реализует различные стратегии обучения для Solverа.
В качестве входа используются данные из памяти, из базы данных или со внешних носителей информации. В качестве скрытых слоёв используются традиционные для свёрточной сети свёрточные слои, слои ReLU, пулинг, полносвязные слои, а также слои разворачивания (деконволюции) для сетей RNN . Обеспечены также многие другие типы слоёв, фильтров, преобразований данных и функций ошибок.
Caffe применяется в академических исследованиях, прототипов для стартапов, а также и для промышленного применения — распознавания изображений, речи или мультимедиа. Yahoo! также интегрировала Caffe со средой Apache Spark , создав распределённый фрэймворк CaffeOnSpark.