Заинтересованы в темах машинного обучения или нуждаются в помощи?

Свяжитесь с нами - https://linktr.ee/pranaychandekar

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

Это подводит нас к вопросу: «Чтобы ускорить, можем ли мы скомпилировать код Python один раз, как другие языки компилятора или хотя бы его части?», «Сделает ли это его быстрее?»

Ответ - Да, мы можем!

В этой статье мы увидим с помощью эксперимента, как мы можем ускорить наши численные вычисления в Python с помощью Numba.

Решение - Нумба

Согласно веб-сайту, Numba - это компилятор JIT (Just In Time) с открытым исходным кодом, который переводит подмножество кода Python и NumPy в быстрый машинный код. Он разработан для использования с массивами и функциями NumPy. Он оптимизирует математический код Python, ориентированный на массивы.

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

Эксперимент

В этом эксперименте я выполнил вычисления косинусного сходства между двумя 50-мерными массивами numpy с numba и без него.

Функция Python подобия косинуса.

Та же функция с numba.

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

Полученные результаты

Разница очевидна. Использование numba сделало наши вычисления в несколько раз быстрее.

Выводы

В этой статье мы коснулись лишь поверхности. С помощью Numba мы можем сделать гораздо больше. Но я оставлю это исследование вам. Вы можете найти полный эксперимент с jupyter-notebook в следующем репозитории.



Заинтересованы в таких темах или нуждаются в помощи?

Свяжитесь с нами - https://linktr.ee/pranaychandekar

Цитаты

  1. Https://numba.pydata.org/
  2. Https://spectrum.ieee.org/computing/software/the-top-programming-languages-2019