Сравнение фреймворков для глубокого обучения: TensorFlow, PyTorch, Keras, MXNet, Microsoft Cognitive Toolkit, Caffe, etc |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2019-03-19 10:12 Всем привет. В этот пятничный день делимся с вами первой публикацией посвященной запуску курса «Data Scientist». Приятного прочтения. Великое множество организаций загорелось идеей использовать в своих решениях искусственный интеллект для расширения масштабов деятельности или развития своего старт-апа, однако нужно понимать одну важную вещь: выбранная технология разработки должна идти вкупе с хорошим фреймворком для глубокого обучения, особенно потому, что каждый фреймворк служит для какой-то своей отдельной цели. Поиск идеального тандема в этом случае – это необходимое условие для плавного и быстрого развития бизнеса и успешного развертывания проектов.
Следующий список фреймворков для глубокого обучения может стать подспорьем в процессе выбора подходящего средства для решения конкретных задач, с которыми вы сталкиваетесь в процессе работы над проектом. Вы сможете сравнить плюсы и минусы различных решений, оценить их пределы возможностей и узнать о лучших вариантах использования для каждого решения! 1. Tensorflow Созданная Google и написанная на Python и C++, TensorFlow является одной из лучших открытых библиотек для численных вычислений. Она просто обязана быть хорошей, поскольку даже такие гиганты как DeepMind, Uber, AirBnB или Dropbox выбрали этот фреймворк для своих нужд. TensorFlow хороша для сложных проектов, таких как создание многослойных нейронных сетей. Она используется для распознавания голоса или картинок и приложений для работы с текстом, таких как Google Translate, например. Конечно же, эксперты назвали множество ее плюсов:
И минусов: Она проигрывает по скорости работы в эталонных тестах, в сравнении с CNTK и MXNet, например; Она имеет более высокий входной порог для начинающих, чем PyTorch или Keras. Голая Tensorflow достаточно низкоуровневая и требует много шаблонного кода, и режим «определить и запустить» для Tensorflow значительно усложняет процесс дебага. Есть и еще одно значительное ограничение: единственный полностью поддерживаемый язык – Python. 2. PyTorch PyTorch является преемником Python для библиотеки Torch, написанной на Lua, и большим конкурентом TensorFlow. Он был разработан Facebook и использовался Twitter, Salesforce, Оксфордским Университетом и многими другими компаниями. PyTorch используется в основном, чтобы обучать модели быстро и эффективно, поэтому это выбор большого количества разработчиков. У него есть множество важных преимуществ:
Распределенное обучение доступно с версии 0.4. Но есть у этого фреймворка и несколько неоспоримых минусов:
3. Keras Keras – это минималистичная библиотека, основанная на Python, которая может запускаться поверх TensoFlow, Theano или CNTK. Она была разработана инженером компании Google, Франсуа Шолле, в целях ускорения экспериментов. Keras поддерживает широкий спектр слоев нейронных сетей, таких как сверточные слои, рекуррентные или плотные. Этот фреймворк хорош в кейсах для перевода, распознавании изображений, речи и т.п. Преимущества:
И немного недостатков:
Keras не настолько функционален как TensorFlow и дает меньше опций для управления сетевым соединением, что может стать серьезным ограничением, если вы собираетесь создать какую-то специализированную модель глубокого обучения. 4. MXNet Это фреймворк для глубокого обучения созданный Apache, который поддерживает изобилие языков, например, Python, Julia, C++, R или JavaScript. Он применяется в Microsoft, Intel и веб-сервисах Amazon. Фреймворк MXNet известен своей высокой масштабируемостью, поэтому он используется большими компаниями в основном для распознавания речи и почерка, NLP и прогнозирования. У него есть множество преимуществ:
А теперь о недостатках MXNet:
Исходя из вышеприведенных аргументов, MXNet – это хороший фреймворк для больших промышленных проектов, но он еще достаточно молод, поэтому помните о том, что вы можете не получить техническую поддержку в решении своего вопроса так быстро, как хотелось бы. 5. CNTK Сейчас этот фреймворк называется Microsoft Cognitive Toolkit. Он представляет из себя открытый фреймворк для глубокого обучения, созданный для работы с действительно большими датасетами с поддержкой Python, C++, C# и Java. CNTK обеспечивает эффективное обучение моделей для распознавания голоса, рукописного текста и картинок, также поддерживает CNN и RNN. Она используется в Skype, Xbox и Cortana. Как и всегда эксперты уже оценили его преимущества:
И один единственный недостаток:
6. Caffe и Caffe2 Caffe – это фреймворк, реализованный на C++, который имеет очень годный интерфейс Python. Он поддерживает CNN и сети прямого распространения, а также хорош для тренировки моделей (без написания лишних строк кода), обработке картинок и усовершенствования существующих нейронных сетей. С другой стороны, он не так хорошо задокументирован и его сложно компилировать. Об использовании Caffe какими-либо крупными компаниями сведений пока нет. В 2017 году компания Facebook выпустила Caffe 2, который стал настоящим преемником Caffe, и был создан как для мобильных, так и крупномасштабных разработок в производственной среде. В Facebook он известен как, «Платформа, готовая в продакшн, (…), работающая более, чем на 1 миллиарде смартфонов, охватывающая 8 поколений IPhone и шесть поколений процессорных архитектур Android.» Этот фреймворк хорош по нескольким причинам:
И снова основной недостаток:
Несмотря на то, что Caffe2 хорошо проходит тесты по скорости и занимаемой памяти, он сравнительно новый и достаточно ограничен в вопросах развертывания сложных сетей, которые нуждаются, как минимум, в удобных инструментах для отладки и технической поддержки. 7. Deeplearning4j Если ваш основной язык программирования Java, то вам стоит обязательно взглянуть поближе на DL4J. Это коммерческая платформа с открытым исходным кодом, написанная в основном для Java и Scala, которая предоставляет хорошую поддержку различных типов нейронных сетей (таких как CNN, RNN, RNTN, или LTSM). Этот фреймворк будет хорошим выбором, поскольку он имеет большой потенциал в области распознавания изображений, обработки естественного языка, поиске уязвимостей и анализе текста. Плюсы:
Что удивительно, говоря об этом фреймворке, эксперты не фокусируются на каких-то конкретных недостатках, как допустим на всеобщем споре о пригодности Java для машинного обучения в целом. Поскольку Java не так часто используется в проектах машинного обучения, фреймворк не может полагаться на растущие базы готового кода для решения конкретных задач. В результате, затраты на ваш проект могут стать гораздо выше и решение одной задачи может значительно замедлить общий прогресс проекта. 8. Chainer Еще один фреймворк на Python для глубокого обучения, поддерживаемый такими гигантами, как Intel, IBM, NVIDIA и AWS. Он может с легкостью задействовать несколько GPU. Chainer используется в основном для распознавания голоса, машинного перевода и анализа тональности. Он поддерживает различные архитектуры сетей, как например CNN, fast-forward, RNN и имеет несколько важных преимуществ перед своими конкурентами:
С другой стороны:
Поскольку другие Python-ориентированные фреймворки гораздо популярнее, вы можете не получить такую быструю помощь, как в случае с иными фреймворками, такими как TensorFlow или PyTorch. Подводим итоги Выбрать лучший фреймворк для проекта с глубоким обучением может быть крайне сложно. Вам необходимо учитывать следующий факторы:
Надеюсь, что приведенное сравнение фреймворков прольет немного света на эту проблему и поможет вам выбрать наиболее подходящее решение для вашего проекта. Пишите комментарии и до встречи на дне открытых дверей, который уже 19 марта проведет Александр Никитин. Источник: habr.com Комментарии: |
|