1. TensorFlow
Разработанный компанией Google фреймворк глубокого обучения TensorFlow, без сомнения, – популярнейший инструмент для обучения нейросетей. Google активно использует собственный фреймворк для таких крупномасштабных сервисов, как Gmail и Google Translate. TensorFlow применяют такие бренды, как Uber, Airbnb, Xiaomi, Dropbox и другие.
- С помощью TensorFlow можно визуализировать отдельные части нейросети.
- Модули Tensorflow можно делать автономными.
- TensorFlow позволяет проводить обучение нейросетей и на CPU, и на GPU.
- Конвейерный процесс обучения.
- Большая команда постоянно работает над улучшением стабильности и новыми функциями.
2. Scikit-Learn
Популярная библиотека машинного обучения Scikit-Learn написана на Python, C и C++. Самый распространенный выбор для решения классических задач машинного обучения. Используется и в промышленных системах, и в научных исследованиях.
- Широкий выбор алгоритмов обучения с учителем и без учителя.
- Scikit-learn специализируется исключительно на алгоритмах машинного обучения. В задачи библиотеки не входит загрузка, обработка, манипуляция данными и их визуализация.
- Большое сообщество и подробная документация.
3. NumPy
NumPy – одна из самых популярных библиотек Python, применяемых для машинного обучения. TensorFlow и другие библиотеки используют ее «внутри себя» для выполнения операций с многомерными массивами.
Математические алгоритмы, реализованные на интерпретируемых языках (Python), часто работают гораздо медленнее тех же алгоритмов, реализованных на компилируемых языках. Библиотека NumPy предоставляет реализации вычислительных алгоритмов, оптимизированные для работы с многомерными массивами.
4. Keras
Keras – идеальный выбор, если нужно быстро и просто собрать модель глубокого обучения. Представляет собой надстройку над фреймворками TensorFlow и Theano. Библиотека нацелена на оперативную работу с сетями глубинного обучения, при этом спроектирована так, чтобы быть компактной, модульной и расширяемой. Keras предоставляет высокоуровневый, интуитивный набор абстракций, который делает простым формирование нейронных сетей, независимо от используемой в качестве вычислительного бэкенда библиотеки научных вычислений.
- Отлично работает как на CPU, так и на GPU.
- Поддерживает практически все модели нейронных сетей, которые могут быть объединены для построения более сложных моделей.
- Платформа полностью написана на Python, то есть можно использовать стандартные инструменты отладки.
5. PyTorch
PyTorch – один из лучших вариантов для работы с нейросетями, давний конкурент TensorFlow. Разрабатывается преимущественно группой искусственного интеллекта Facebook. Именно PyTorch использовался в качестве фреймворка глубокого обучения в статье Генеративно-состязательная нейросеть: ваша первая GAN-модель.
- Простая поддержка GPU.
- В GPU-режиме PyTorch обеспечивает качественную оптимизацию, есть рантайм-среда с API на C++.
- Поддержка асинхронного выполнения вычислений.
- Прямой доступ к платформам, визуализаторам и средам выполнения на базе ONNX.
6. LightGBM
LightGBM – это фреймворк на основе градиентного бустинга – одного из самых популярных алгоритмов в соревнованиях Kaggle. Градиентный бустинг – это техника машинного обучения для задач классификации и регрессии, которая строит модель предсказания в форме ансамбля предсказывающих моделей, обычно деревьев решений.
- Быстрая скорость обучения и высокая эффективность.
- Низкое потребление памяти.
- Поддержка параллельных вычислений и расчетов на GPU.
- Можно работать с большими объемами данных.
7. Pandas
Pandas – библиотека, предоставляющая высокоуровневые структуры для работы с данными и широкий спектр инструментов для их анализа. Библиотека позволяет выполнять множество сложных команд с небольшим количеством кода: сортировка и группировка данных, работа с недостающими данными, временными рядами и т. д. Все данные представляются в виде таблиц датафреймов.
- Анализ данных с помощью одной строки Pandas
- 10 простых хаков, которые ускорят анализ данных Python
- Что нового в Pandas 1.0?
8. SciPy
SciPy предназначена для выполнения научных и инженерных расчётов, в том числе задач машинного обучения.
- Возможности: поиск минимумов и максимумов функций, вычисление интегралов, поддержка специальных функций, обработка сигналов и изображений, решение дифференциальных уравнений и др.
- SciPy тесно связан с NumPy, так что NumPy-массивы поддерживаются по умолчанию.
- Библиотека SciPy может взаимодействовать с PyTables – иерархической базой данных, разработанной для управления большими объёмами данных в файлах формата HDF5.
9. Eli5
Eli5 – это библиотека Python для визуализации и отладки моделей машинного обучения с помощью унифицированного API. Имеется встроенная поддержка нескольких ML-фреймворков и библиотек: упоминавшихся выше scikit-learn, Keras, LightGBM, а также XGBoost, lightning и CatBoost.
10. NLTK (Natural Language Toolkit)
NLTK – пакет библиотек и программ для символьной и статистической обработки естественного языка. Сопровождается обширной документацией, включая книгу с объяснением концепций, стоящих за задачами обработки естественного языка, которые можно выполнять с помощью данного пакета.
11. Pillow
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 вы используете в своих проектах?