0 шт.
Выбрать страницу

Почему стоит учить PyTorch?

Обзор фреймворков глубокого обучения

Рейтинг фреймворков в соответствии с данными Statista:

  1. TensorFlow.
  2. Keras.
  3. PyTorch.

TensorFlow хорошо показывает себя при развертывании на сервере. Библиотека TensorFlow Extended, позволяет делать мониторинг модели и поступающей в модель информации.

Keras рекламирует себя как библиотека для прототипирования. То есть вы сможете очень быстро написать и попробовать модель в действии. Keras - это не самостоятельная библиотека Keras работает поверх TensorFlow, Theano и CNTK.

PyTorch - это мощная библиотека для проведения исследований. С PyTorch ваше воображение не ограничено: пишите функции активации, новые слои, меняйте алгоритм дифференцирования.

Преимущества PyTorch

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

  1. Логика фреймворка отвечает логике вычислений. В TensorFlow ваше понимание заканчивается на model.compile и ничего не видно, что происходит. Остается впечатление, что вы ничем не управляете, в отличие от PyTorch. Конечно, PyTorch требует больше кода чем TensorFlow, но вы понимаете, что происходит. Вы контролируете каждый шаг фреймворка.
  2. Императивность и декларативность. Прежде всего, что такое императивность. Пример императивный команды: "Принеси мне чай!". Вы указываете, что нужно сделать без декларирования как это нужно сделать. Пример декларативный команды: "Возьми стакан чая. Обойди стол. Поставь стакан на стол". В декларативной модели вы описываете, что нужно сделать, в императивный команде вы приказываете, что делать. Нельзя сказать, что PyTorch использует только императивную модель, потому что вы декларируете модель. Но PyTorch более императивный, чем TensorFlow и это очень большой комфорт для программиста.
  3. Возможность немедленного исполнения команды или говоря языком TensorFlow eager execution. Это означает, что вы можете исполнить инструкцию программы и результат сразу будет выведен в ячейку Jupyter Notebook. TensorFlow 2.0 имеет эту функцию но в PyTorch она была встроена с самого основания. Можно сказать, что TensorFlow копирует лучшие практики PyTorch.
  4. Расширяемость. PyTorch и здесь показывает себя очень хорошо. Возможность расширить PyTorch, используя Python. В TensorFlow вам нужно знать C++ для того, чтобы написать свою функцию со своим алгоритмом дифференцирования.
  5. В PyTorch программирование происходит в стиле Python. Есть писанные и неписанные правила, что такое программирование стиле Python. Когда говорят о коде, который соответствует этим стандартам, то говорят, что это pythonic way стиль программирования. Говоря про писанные правила, вы можете посмотреть PEP и особенно обратите внимание на "The Zen of Python" PEP 20, который является собранием мудрости для программиста. TensorFlow больше похож на Python, написанный в стиле C++. Вы скоро поймете, что pythonic way - это простота и комфорт.
  6. PyTorch не так уж и плох на сервере в рабочем режиме благодаря JIT compiler, вы просто ставите декоратор над функцией и декоратор конвертирует вашу функцию в нативный C++ код, что улучшает производительность работы. Декоратор - это функция, которая вызывает функцию, которая она декорирует и производит операции над функцией перед вызовом. Например, конвертирует ее в более быстрый формат.

Работать в PyTorch приятно и комфортно. Есть англоязычный форум, который в России работает только через VPN. Советую не жалеть денег на VPN и посетить этот замечательный форум, где люди, которые пишут фреймворк готовы помочь вам. Кроме этого Facebook, создатель PyTorch, проводит образовательные программы и выделяет стипендии. Если у вас не работает модель, то StackOverflow покрывает множество проблем, которые у вас могут возникнуть с PyTorch.

Обучение

PyTorch - это мощный инструмент для работы с нейронными сетями.

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

In [ ]: