Рубрики
Без рубрики

TensorFlow vs PyTorch vs Jax – Сравнение

В этой статье мы попытаемся изучить 3 основных фреймворка глубокого обучения в python – TensorFlow vs Pitch vs Jax. Эти рамки, однако, различаются двумя

Автор оригинала: Pankaj Kumar.

В этой статье мы попытаемся изучить 3 основных фреймворка глубокого обучения в python – TensorFlow vs PyTorch vs Jax. Эти рамки, однако, разные, имеют две общие черты –

  • Они с открытым исходным кодом. Это означает, что если вы чувствуете, что в библиотеке есть ошибка, вы можете опубликовать проблему в GitHub(и исправить ее). Вы также можете добавить свои собственные функции в библиотеку.
  • Python внутренне медленный из-за глобальной блокировки интерпретатора. Таким образом, эти фреймворки используют C/C++ в качестве бэкенда, который обрабатывает все вычисления и параллельные процессы.

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

TensorFlow vs PyTorch vs Jax – Краткий обзор

Тензорный поток Пыторч Джекс
Разработано Гугл Фейсбук Гугл
Гибкий Нет Да Да
Создание графа Статический/Динамический Динамический Статический
Целевая Аудитория Исследователи, Разработчики Исследователи, Разработчики Исследователи
API низкого/высокого уровня Высокий Уровень Оба Оба
Этап разработки Зрелый( v2.4.1 ) Зрелые( v1.8.0 ) Разработка( v0.1.55 )

Тензорный поток

Логотип Tensorflow

TensorFlow, разработанный Google, в настоящее время является самой популярной библиотекой машинного обучения . Вот некоторые из важных особенностей TensorFlow:

  • Это очень удобный фреймворк для начала. Наличие высокоуровневого API-Keras упрощает определение слоев модели, функцию потерь и создание модели.
  • TensorFlow2.0 поставляется с нетерпеливым исполнением, которое использует графики динамического типа. Это делает библиотеку более удобной для пользователя и является значительным обновлением по сравнению с предыдущими версиями.
  • Этот высокоуровневый интерфейс Keras имеет определенные недостатки. Поскольку TensorFlow абстрагирует множество базовых механизмов (исключительно для удобства конечного пользователя), он оставляет исследователям меньше свободы в том, что они могут делать со своей моделью.
  • Одна из самых привлекательных вещей, которую может предложить Tensorflow, – это TensorBoard, которая на самом деле является инструментарием визуализации TensorFlow. Он позволяет визуализировать функцию потерь, моделировать графики, профилирование и т.д.

Поэтому, если вы начинаете с глубокого обучения или хотите легко развернуть свою модель, TensorFlow может стать хорошей основой для начала. TensorFlow Lite упрощает развертывание моделей ML на мобильных и периферийных устройствах. Вы можете ознакомиться с официальным репо GitHub , чтобы получить более полное представление о фреймворке.

Пыторч

Логотип Pytorch Темный

Python(Python-Torch) – это библиотека машинного обучения от Facebook. Он медленно догоняет по популярности TensorFlow. Некоторые из наиболее важных особенностей подачи:

  • В отличие от TensorFlow, Python использует графики динамического типа, что означает, что график выполнения создается на ходу. Это позволяет нам изменять и проверять внутренние части графика в любое время.
  • Помимо удобных высокоуровневых API, Pitch имеет хорошо построенный низкоуровневый API, который позволяет все больше и больше контролировать вашу модель машинного обучения. Мы можем проверять и изменять выходные данные во время прямого и обратного прохождения модели во время обучения. Это оказывается очень эффективным для отсечения градиента и передачи нейронного стиля.
  • PyTorch позволяет легко расширять их код, добавлять новые функции потерь и пользовательские слои. Pitch autograd достаточно мощный, чтобы различать эти пользовательские слои. Пользователи также могут выбрать, как вычисляются градиенты.
  • PyTorch имеет широкий спектр поддержки параллелизма данных и использования графического процессора.
  • PyTorch более питонический, чем TensorFlow. Pitch хорошо вписывается в экосистему python, что позволяет использовать инструменты отладчика Python для отладки кода Python.

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

Джекс

Логотип Jax

Jax – это относительно новая библиотека машинного обучения от Google. Это скорее библиотека autograb, которая может различаться в каждом собственном коде python и NumPy. Давайте рассмотрим некоторые особенности JAX:

  • Как описывает официальный сайт, JAX способен выполнять Составные преобразования программ Python+NumPy: дифференцировать, векторизировать, JIT в GPU/TPU и многое другое .
  • Наиболее важным аспектом JAX по сравнению с шагом является то, как вычисляются градиенты. В torch график создается во время прямого прохода, а градиенты вычисляются во время обратного прохода. С другой стороны, в JAX вычисление выражается в виде функции. Использование grade() в функции возвращает функцию градиента, которая непосредственно вычисляет градиент функции для данного ввода.
  • JAX – это инструмент автографа, использовать его в одиночку едва ли хорошая идея. Существуют различные библиотеки ML на основе JAX, среди которых выделяются Ajax, Flax и Elegy. Поскольку все они используют одно и то же ядро, а интерфейс-это просто оболочка вокруг библиотеки JAXlibrary, мы поместили их под одну скобку.
  • Лен первоначально разрабатывался в рамках экосистемы PyTorch. Он больше фокусируется на гибкости использования. С другой стороны, Элегия больше вдохновлена Керасом. ObJAX был в основном разработан для исследовательских целей, которые больше ориентированы на простоту и понятность. На самом деле это соответствует слогану – by исследователи для исследователей .

ДЖАКС становится все более популярным с каждым днем. Многие исследователи используют JAX для своих экспериментов, привлекая немного трафика от Pitch. JAX все еще находится в зачаточном состоянии и не рекомендуется для людей, которые только начинают изучать глубокое обучение( на данный момент). Требуется некоторый математический опыт, чтобы играть с современным уровнем техники. Посетите официальный репозиторий , чтобы узнать больше об этой многообещающей новой библиотеке.

Какой из них вы выберете?

Ответ на выбор между TensorFlow vs Pitch vs Jax полностью зависит от цели вашего использования. Однако, если вы не ошибетесь ни с одной из этих библиотек, если вы работаете над проектом машинного обучения в качестве новичка. Как только вы перейдете к продвинутому моделированию ML, ваши требования станут достаточно конкретными, чтобы вы могли определить лучшую библиотеку, которая вам подходит.

До тех пор следите за обновлениями и продолжайте учиться!