Причины выбрать PyTorch для глубокого обучения
Глубокое обучение и машинное обучение были самыми популярными словами среди всех за последние пару лет, и этому есть прекрасное объяснение.
Машинное обучение позволило системам учиться на собственном опыте, в то время как с помощью глубокого обучения машинное обучение стало еще более масштабным с использованием обширных наборов данных. Это повышение в ML и DL породило различный язык программирования s и библиотеки , которые пришли и поддержку программистов , исследователи и ученые данные для достижения немыслимы. Некоторые из самых сильных претендентов на лучшую библиотеку Deep Пизанской являются TensorFlow и PyTorch . А пока мы больше сосредоточимся на PyTorch.
PyTorch
Facebook выпустил PyTorch для сцены программирования в 2016 году , который основан на библиотеке Lua Torch .
PyTorch - это бесплатная библиотека машинного обучения с открытым исходным кодом, которая в настоящее время находится на версии 1.4 . PyTorch отсутствует уже почти три года и претерпел множество улучшений, чтобы улучшить свое положение. PyTorch был создан, чтобы чувствовать себя быстрее и более Pythonic, чем остальные конкуренты. Он также включает поддержку вычислений C, C ++ и тензорных вычислений .
Google Trends - интерес к PyTorch с течением времени
Причины выбрать PyTorch для глубокого обучения
Прежде чем перейти к причинам, по которым нельзя попробовать PyTorch, ниже приведены несколько уникальных и интересных проектов и библиотек глубокого обучения, которые помогли создать PyTorch:
● CheXNet: обнаружение пневмонии на уровне радиолога на рентгеновских снимках грудной клетки с глубоким обучением.
● Horizon: платформа для прикладного обучения с подкреплением (Applied RL).
● PYRO : Pyro - это универсальный вероятностный язык программирования (PPL), написанный на Python и поддерживаемый PyTorch на внутренней стороне.
● Kaolin от NVIDIA в качестве библиотеки PyTorch для ускорения 3D Deep Learning.
● TorchCV для внедрения компьютерного зрения в ваши проекты.
● PyDLT как набор инструментов для глубокого обучения.
● библиотека fastai оптимизирует процесс обучения нейронной сети
● и многое другое.
Это несколько фреймворков и проектов, построенных на основе TensorFlow и PyTorch. Вы можете найти больше на Github и официальных сайтах TF и PyTorch.
В мире TensorFlow , PyTorch способна удерживать на своей собственной со своими сильными сторонами. Ниже приведены некоторые из основных моментов, объясняющих, почему PyTorch подходит для ваших проектов глубокого обучения:
1. PyTorch больше питонический
PyTorch - это фреймворк, который позволяет нам писать код более питоническим способом. Кроме того, вид динамизма , который он поддерживает использование наивного кода питона является замечательным.
PyTorch имеет тенденцию больше склоняться к Python по сравнению с любой другой библиотекой. Это потому, что PyTorch относительно прост для понимания и кажется более естественным , естественным и соответствующим коду Python .
Любой, кто работал с Python, будет чувствовать себя как дома со всем, что связано с PyTorch, включая функции потерь, оптимизаторы, преобразования, загрузчики данных и многие другие классы.
Код для каждого примера PyTorch (Vision и NLP) имеет общую структуру:
2. Простота использования
По сравнению с PyTorch у TensorFlow относительно более крутая кривая обучения. Программистам на Python потребуется меньше времени для адаптации к PyTorch, поскольку для них он, скорее всего, будет ощущаться как расширение инфраструктуры Python. Простая отладка и отличный набор простых API-интерфейсов играют ключевую роль в упрощении понимания PyTorch для программистов.
3. Полезные библиотеки
С большой поддержкой сообщества приходит большой энтузиазм и вклад в развитие сообщества. Используя PyTorch, программисты пошли дальше и создали несколько проектов, доступных для всех желающих. Сводный список нескольких из этих проектов в различных областях, таких как компьютерное зрение , обработка естественного языка и генеративные библиотеки, приведен ниже:
● pro_gan_pytorch для использования функций ProGAN
● BoTorch для использования байесовской оптимизации
● ParlAI для обмена, обучения и тестирования диалоговых моделей
● OpenNMT-py для внедрения системы нейронного машинного перевода.
● MUSE для встраивания многоязычных слов.
● skorch за слияние кода scikit-learn с PyTorch
4. Простой параллелизм данных
Параллелизм данных в PyTorch эффективен и позволяет разделять данные на пакеты , которые затем отправляются на несколько графических процессоров для обработки. Используя этот метод, PyTorch может перенести значительную часть рабочей нагрузки с центрального процессора на графический процессор. Для параллелизма данных используется класс torch.nn.DataParallel.
Распределенные параллельные данные - это функция PyTorch, которую можно комбинировать с параллельными данными для обработки случаев использования, требующих больших наборов данных и моделей, достаточно больших для одного графического процессора. Когда все задачи в пуле графических процессоров завершены, результат собирается, объединяется и отправляется вам через Data-Parallel.
5. Отлично подходит для исследователей.
PyTorch является подарком для исследователей, поскольку его используют не менее 70% исследователей, работающих над фреймворками. Несмотря на то, что TensorFlow является лучшим в отрасли выбором для разработки приложений, в этом аспекте он пока не догнал PyTorch. Одной из причин этого может быть простота и удобство использования PyTorch с лучшей производительностью.
6. Поддержка мобильных устройств
Начиная с версии 1.3 в PyTorch добавлена поддержка развертывания на устройствах Android и iOS . Эта функция предоставляет все преимущества PyTorch для периферийных устройств, чтобы обслуживать приложения, требующие меньших задержек. Цель PyTorch Mobile - сократить цикл разработки за счет поддержки базовых API-интерфейсов для мобильных платформ, устраняя необходимость экспорта в мобильные платформы, такие как Caffe2. Это позволяет значительно сократить занимаемое на устройстве место. Также была добавлена поддержка точной настройки скриптов сборки для большего контроля.
Начните работу с PyTorch Mobile:
Начать работу на Android
Начать работу на iOS
7. Простая отладка
PyTorch глупо легко отлаживать, когда у вас есть возможность получить доступ к каждой строке и обычный способ печати после каждой строки. Изюминкой является то, что объекты и операции в PyTorch содержат фактические данные, а не символические ссылки, что упрощает жизнь программистам. Некоторые из стандартных отладчиков для PyTorch:
● ipdb
● pdb
● PyCharm
Скажем, например, вы можете использовать функцию pdb «pdb.set_trace ()» для размещения точек останова в вашем коде, чтобы перейти к корню ошибки. Кроме того, динамические вычислительные графики PyTorch позволяют выполнять динамическую модификацию и оперативную отладку во время выполнения вашего кода.
8. Поддержка ONNX.
Open Neural Network Exchange выступает в качестве экосистемы с открытым исходным кодом для искусственного интеллекта , предоставляя программистам ИИ общую основу для взаимозаменяемой работы с различными фреймворками, инструментами и библиотеками. ONNX делает это, предоставляя стандартный формат файла, который работает на нескольких платформах и оборудовании.
Когда дело доходит до PyTorch, ONNX имеет встроенную поддержку PyTorch и широкого спектра других фреймворков, таких как Caffe2, MXNet, TensorFlow и других. ONNX упрощает для программистов ИИ экспорт и перенос своих моделей PyTorch в открытый формат, который могут интегрировать другие фреймворки.
9. Поддержка динамических вычислительных графов.
Рассматривая каждую модель как направленный ациклический граф, PyTorch предлагает динамический подход к определению графов вычислений. В то время как другие фреймворки допускают определение статического графа, PyTorch поддерживает создание динамического графа вычислений, где вы можете свободно манипулировать им на ходу. Одним из таких элементов, который извлекает наибольшую пользу из этого динамического аспекта PyTorch, являются рекуррентные нейронные сети среди многих других.
10. Сильная поддержка сообщества
PyTorch также предлагает отличную поддержку сообщества . Дом PyTorch имеет подробную документацию о каждом из его особенностей. Все последние обновления библиотеки хорошо объяснены. С каждым новым дополнением можно найти вспомогательные учебные пособия и связанные ресурсы, чтобы получить это ценное практическое представление.
Форум PyTorch - отличное и очень рекомендуемое место для новичков, где можно задать вопросы, а для ветеранов - поделиться своими идеями с другими программистами. Сообщество довольно активно, публикуя более сотни сообщений в день, и поощряет людей присоединяться к PyTorch.
Вот некоторые из сообщества разработчиков PyTorch , ресурсы и учебные пособия, чтобы внести свой вклад, изучить и получить ответы на свои вопросы:
● Руководства по Github Pytorch
● Шпаргалка по PyTorch для начинающих
● Примечания к выпуску PyTorch
● Глубокое обучение с помощью Pytorch: 60-минутный блиц
● Использование учебных данных с Google Диска в Colab.
● Документы и руководства на китайском языке.
● Учебники на корейском языке.
Заключение
Обладая огромным количеством интуитивно понятных функций для программистов глубокого обучения, PyTorch может многое предложить людям с широким спектром уровней навыков. Несмотря на то, что PyTorch предоставляет простую точку входа, к нему нельзя относиться легкомысленно, поскольку он предлагает функции, которые не только обеспечивают лучшую производительность в определенных аспектах, но и предлагают дополнительные уникальные функции. Мы обсудили некоторые из наиболее часто обсуждаемых функций PyTorch, которые помогут вам совершить переход на PyTorch, к которому вы так скептически относились.
Более интересные чтения -
Надеюсь, эта статья оказалась для вас полезной! Ниже приведены некоторые интересные материалы, надеюсь, они вам тоже понравятся.
Об авторе
Claire D . является создателем контента и маркетологом в Digitalogy - торговой площадке для поиска технических ресурсов и индивидуального поиска партнеров, которая объединяет людей с предварительно отобранными и первоклассными разработчиками и дизайнерами на основе их конкретных потребностей по всему миру. Подключайтесь к Digitalogy в Linkedin , Twitter , Instagram .