Многие фреймворки машинного обучения стремились стать новыми фаворитами среди исследователей и практиков отрасли. От ранней академической эры Caffe и Theano до масштабной индустрии, поддерживаемой и возглавляемой PyTorch и TensorFlow.

Несколько лет назад, если бы нам нужно было ответить на этот вопрос, у нас было бы 6–7 различных фреймворков глубокого обучения.

Теперь, если мы говорим о фреймворках глубокого обучения (подполе машинного обучения), большинство из них не смогли этого сделать, кроме TensorFlow и PyTorch.

Что может быть лучше, чем начать с репозиториев GitHub, TensorFlow лидирует с 148 тысячами звезд, тогда как у PyTorch около 50 тысяч звезд, и это нормально, поскольку он начался позже.

Сравнение на основе данных не будет хорошим, потому что меняющиеся времена и меняющиеся потребности не сделают его хорошим параметром, на который можно положиться, но сравнение, основанное на различии приложений, может дать нам довольно хорошее представление о том, что именно мы должны учитывать и идти за.

Но перед этим у нас есть вопрос, на который нужно ответить,

Где мне использовать PyTorch или TensorFlow?

Это спор, на который никогда не будет ответа, но можно с уверенностью сказать, что у каждой области есть свой набор конкретных вариантов использования, в которых они доминируют, как и все остальное.

Чтобы ответить на этот вопрос, нам придется взять разные сектора, где допустимы и принимаются во внимание различные приложения.

Индустрия

вы находитесь в отраслевой установке, основанной на глубоком обучении, вы, вероятно, используете TensorFlow и, вероятно, должны придерживаться его. Надежная среда развертывания и расширенная платформа TensorFlow бесценны для тех, кому нужны модели, которые вскоре могут быть запущены в производство. Простое развертывание на сервере gRPC (удаленный вызов процедур Google), а также мониторинг моделей и отслеживание артефактов (побочный продукт разработки программного обеспечения, который помогает в описании архитектуры, дизайна и функций программного обеспечения) являются важными инструментами. для использования в промышленности.

С недавним выпуском Torch Serve вы можете рассмотреть возможность использования PyTorch (только если у вас есть веская резервная копия) для доступа к моделям SOTA (Современное состояние), доступным в PyTorch.

Если вы создаете мобильные приложения, вы можете рассмотреть возможность использования PyTorch, учитывая недавний выпуск PyTorch Live, но в какой-то момент вам понадобится ввод аудио или видео, и в этот момент в игру вступает TensorFlow.

Исследовать

Если вы исследователь или занимаетесь исследованиями, вам следует использовать PyTorch, потому что работа в этой среде Python помогает избежать сложности.

Есть несколько исключений из этого правила, наиболее заметным из которых является то, что тем, кто занимается обучением с подкреплением, следует рассмотреть возможность использования TensorFlow. Для обучения с подкреплением TensorFlow имеет собственную библиотеку агентов, дополненную платформой DeepMind Acme, которая обеспечивает идеальную среду для удовлетворения потребностей.

В TensorFlow мы также можем увидеть реализацию репозитория базовой модели OpenAI, но он не относится к какой-либо одной платформе, поскольку его можно использовать как в TensorFlow, так и в PyTorch.

Если вы не хотите использовать TensorFlow, вам следует рассмотреть возможность изучения JAX от Google, если вы проходите обучение TPU (Tensor Processing Unit). Это не сама структура нейронной сети, но она ближе к реализации NumPy и даст вам опыт работы с Python. В качестве альтернативы вы можете поискать Flax от Google.

Если тренинги TPU не входят в ваше расписание, то лучше всего придерживаться PyTorch.

Какой бы фреймворк вы ни выбрали, вам следует следить за JAX (конференция по Java и инновациям в программном обеспечении) в 2022 году, особенно по мере того, как его сообщество растет и все больше публикаций начинают его использовать.

Профессор/Студент

Если вы профессор/студент, то, какую структуру использовать для глубокого обучения, полностью зависит от целей и результатов, которых вы хотите достичь.

Для студентов: если вы хотите стать инженером глубокого обучения, готовым к работе в отрасли, который может остановить весь процесс глубокого обучения, а не только теорию глубокого обучения, вам следует использовать TensorFlow. В этом случае знакомство с экосистемой TensorFlow и ее инструментами вместе с практическими проектами будет очень поучительным и ценным.

Для профессоров, если основное внимание в вашем курсе уделяется теории глубокого обучения и пониманию моделей глубокого обучения, тогда Py Torch — это то, что вам нужно, и это окажется правдой, если вы преподаете курс UG (бакалавриат) высокого уровня или ранний PG. курс уровня, целью которого является подготовка студентов к проведению исследований в области глубокого обучения.

В идеале студенты должны научиться работать с каждым фреймворком и посвятить некоторое время пониманию различий между фреймворками. Что в долгосрочной перспективе очень ценно, несмотря на временные ограничения экзаменов.

Энтузиаст / Новичок

Заинтересованы в глубоком обучении?

Какой фреймворк использовать — более важный вопрос, чем с чего начать?

Ответ на этот вопрос полностью зависит от ваших целей

Если вы внедряете модель глубокого обучения в рамках какого-то более крупного проекта, вам следует использовать TensorFlow, особенно если вы развертываете его на IoT/встроенном устройстве. Хотя вы можете использовать Py Torch для мобильных приложений, учитывая выпуск PyTorch Live, TensorFlow + TFLite на данный момент по-прежнему является предпочтительной методологией.

Если ваша цель — изучить и изучить глубокое обучение, то PyTorch — лучший вариант, особенно если у вас есть хорошая привычка работать на Python, это потенциально может быть лучшим шагом, который вы можете сделать.

Использование более интуитивно понятного фреймворка позволит вам эффективно создавать портфолио, что очень важно, чем знакомство с API конкретного фреймворка.

Заключение

Эти дебаты всегда будут жаркими, и топливо никогда не иссякнет, особенно в меняющиеся времена, но обе платформы очень зрелые с перекрывающимися функциями в приложениях глубокого обучения.

В то время как TensorFlow остается предпочтительной платформой наряду с наследием промышленности, PyTorch стал де-факто платформой для проведения исследований.

Если вам нужно выбрать один взгляд на свои цели, классифицируйте их, и это поможет вам.