1. TensorFlow
![<a href="https://www.tensorflow.org/" target="_blank" rel="noopener noreferrer nofollow">TensorFlow</a>](https://media.proglib.io/posts/2020/08/14/d6dde8d564d7bfff22e9f6c8308f990a.jpg)
Разработанный компанией Google фреймворк глубокого обучения TensorFlow, без сомнения, – популярнейший инструмент для обучения нейросетей. Google активно использует собственный фреймворк для таких крупномасштабных сервисов, как Gmail и Google Translate. TensorFlow применяют такие бренды, как Uber, Airbnb, Xiaomi, Dropbox и другие.
- С помощью TensorFlow можно визуализировать отдельные части нейросети.
- Модули Tensorflow можно делать автономными.
- TensorFlow позволяет проводить обучение нейросетей и на CPU, и на GPU.
- Конвейерный процесс обучения.
- Большая команда постоянно работает над улучшением стабильности и новыми функциями.
2. Scikit-Learn
![<a href="https://scikit-learn.org/stable/" target="_blank" rel="noopener noreferrer nofollow">Scikit-Learn</a>](https://media.proglib.io/posts/2020/08/14/550c4665384238d962437938f189d26f.jpg)
Популярная библиотека машинного обучения Scikit-Learn написана на Python, C и C++. Самый распространенный выбор для решения классических задач машинного обучения. Используется и в промышленных системах, и в научных исследованиях.
- Широкий выбор алгоритмов обучения с учителем и без учителя.
- Scikit-learn специализируется исключительно на алгоритмах машинного обучения. В задачи библиотеки не входит загрузка, обработка, манипуляция данными и их визуализация.
- Большое сообщество и подробная документация.
3. NumPy
![NumPy](https://media.proglib.io/posts/2020/08/14/fc3464523b0e506be091f65d23645508.jpg)
NumPy – одна из самых популярных библиотек Python, применяемых для машинного обучения. TensorFlow и другие библиотеки используют ее «внутри себя» для выполнения операций с многомерными массивами.
Математические алгоритмы, реализованные на интерпретируемых языках (Python), часто работают гораздо медленнее тех же алгоритмов, реализованных на компилируемых языках. Библиотека NumPy предоставляет реализации вычислительных алгоритмов, оптимизированные для работы с многомерными массивами.
4. Keras
![<a href="https://keras.io/" target="_blank" rel="noopener noreferrer nofollow">Keras</a>](https://media.proglib.io/posts/2020/08/14/ec2538b76371c1de818c46f48c5af0e4.jpg)
Keras – идеальный выбор, если нужно быстро и просто собрать модель глубокого обучения. Представляет собой надстройку над фреймворками TensorFlow и Theano. Библиотека нацелена на оперативную работу с сетями глубинного обучения, при этом спроектирована так, чтобы быть компактной, модульной и расширяемой. Keras предоставляет высокоуровневый, интуитивный набор абстракций, который делает простым формирование нейронных сетей, независимо от используемой в качестве вычислительного бэкенда библиотеки научных вычислений.
- Отлично работает как на CPU, так и на GPU.
- Поддерживает практически все модели нейронных сетей, которые могут быть объединены для построения более сложных моделей.
- Платформа полностью написана на Python, то есть можно использовать стандартные инструменты отладки.
5. PyTorch
![<a href="https://pytorch.org/" target="_blank" rel="noopener noreferrer nofollow">PyTorch</a>](https://media.proglib.io/posts/2020/08/14/dd44805ea3c488440bbaaa39ac995530.jpg)
PyTorch – один из лучших вариантов для работы с нейросетями, давний конкурент TensorFlow. Разрабатывается преимущественно группой искусственного интеллекта Facebook. Именно PyTorch использовался в качестве фреймворка глубокого обучения в статье Генеративно-состязательная нейросеть: ваша первая GAN-модель.
- Простая поддержка GPU.
- В GPU-режиме PyTorch обеспечивает качественную оптимизацию, есть рантайм-среда с API на C++.
- Поддержка асинхронного выполнения вычислений.
- Прямой доступ к платформам, визуализаторам и средам выполнения на базе ONNX.
6. LightGBM
![<a href="https://lightgbm.readthedocs.io/en/latest/" target="_blank" rel="noopener noreferrer nofollow">LightGBM</a>](https://media.proglib.io/posts/2020/08/14/3e62514e2e1ba78dba4fea2bff68f12c.jpg)
LightGBM – это фреймворк на основе градиентного бустинга – одного из самых популярных алгоритмов в соревнованиях Kaggle. Градиентный бустинг – это техника машинного обучения для задач классификации и регрессии, которая строит модель предсказания в форме ансамбля предсказывающих моделей, обычно деревьев решений.
- Быстрая скорость обучения и высокая эффективность.
- Низкое потребление памяти.
- Поддержка параллельных вычислений и расчетов на GPU.
- Можно работать с большими объемами данных.
7. Pandas
![<a href="https://pandas.pydata.org/" target="_blank" rel="noopener noreferrer nofollow">Pandas</a>](https://media.proglib.io/posts/2020/08/14/c53479248a2ada1e1985e2f2254eafa0.jpg)
Pandas – библиотека, предоставляющая высокоуровневые структуры для работы с данными и широкий спектр инструментов для их анализа. Библиотека позволяет выполнять множество сложных команд с небольшим количеством кода: сортировка и группировка данных, работа с недостающими данными, временными рядами и т. д. Все данные представляются в виде таблиц датафреймов.
- Анализ данных с помощью одной строки Pandas
- 10 простых хаков, которые ускорят анализ данных Python
- Что нового в Pandas 1.0?
8. SciPy
![<a href="https://www.scipy.org/" target="_blank" rel="noopener noreferrer nofollow">SciPy</a>](https://media.proglib.io/posts/2020/08/14/b795afd4f134d632a96919319b601fc7.jpg)
SciPy предназначена для выполнения научных и инженерных расчётов, в том числе задач машинного обучения.
- Возможности: поиск минимумов и максимумов функций, вычисление интегралов, поддержка специальных функций, обработка сигналов и изображений, решение дифференциальных уравнений и др.
- SciPy тесно связан с NumPy, так что NumPy-массивы поддерживаются по умолчанию.
- Библиотека SciPy может взаимодействовать с PyTables – иерархической базой данных, разработанной для управления большими объёмами данных в файлах формата HDF5.
9. Eli5
![Eli5](https://media.proglib.io/posts/2020/08/14/77b0e63f0b31fe9b8482e44e55c8523d.jpg)
Eli5 – это библиотека Python для визуализации и отладки моделей машинного обучения с помощью унифицированного API. Имеется встроенная поддержка нескольких ML-фреймворков и библиотек: упоминавшихся выше scikit-learn, Keras, LightGBM, а также XGBoost, lightning и CatBoost.
10. NLTK (Natural Language Toolkit)
![NLTK](https://media.proglib.io/posts/2020/08/14/eab331959deca86d71b9d1636ec02322.jpg)
NLTK – пакет библиотек и программ для символьной и статистической обработки естественного языка. Сопровождается обширной документацией, включая книгу с объяснением концепций, стоящих за задачами обработки естественного языка, которые можно выполнять с помощью данного пакета.
11. Pillow
![Pillow](https://media.proglib.io/posts/2020/08/14/85bf1ea422121850bd4ff6a9df3e8df3.jpg)
Pillow – улучшенная версия библиотеки изображений PIL (Python Image Library). Поддерживает разнообразные типы файлов: PDF, WebP, PCX, PNG, JPEG, GIF, PSD, WebP, PCX, GIF, IM, EPS, ICO, BMP и другие. Есть множество инструментов фильтрации, которые можно использовать для задач компьютерного зрения.
Заключение
Мы рассмотрели подборку полезностей, которую активно используют специалисты машинного обучения, знатоки нейросетей и прочих направлений Data Science. Если вам интересна наука о данных, обратите внимание на наши публикации по тегу Data Science.
Другие материалы по библиотекам ML и DS:
- 12 библиотек для работы с данными в Python (не таких популярных, как перечисленные)
- 4 Python библиотеки для интерпретируемого машинного обучения
Какие библиотеки Python для Data Science вы используете в своих проектах?