Обзор библиотек обучения нейронных сетей на языке Python | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №46 (336) ноябрь 2020 г.

Дата публикации: 12.11.2020

Статья просмотрена: 320 раз

Библиографическое описание:

Балабанов, Н. Р. Обзор библиотек обучения нейронных сетей на языке Python / Н. Р. Балабанов. — Текст : непосредственный // Молодой ученый. — 2020. — № 46 (336). — С. 6-8. — URL: https://moluch.ru/archive/336/75084/ (дата обращения: 16.11.2024).



В статье даётся обзор самых популярных библиотек машинного обучения языка Python.

Ключевые слова: нейронная сеть, python, обучение, сеть, машинное зрение, библиотека.

Tensorflow

Первая и самая популярная на данный момент — открытая библиотека Tensorflow. Вышла 9 ноября 2015 года и претерпела множество изменений, однако на данный момент интерфейс библиотеки остаётся без изменений, а методы обучения постоянно улучшаются.

Эта библиотека позволяет легко строить модели, а также поддерживает очень простой и интуитивный интерфейс, облегчающий обучение людей работе с нейронными сетями. [1]

Простота и популярность Tensorflow привела к появлению надстройки-интерфейса Keras. Кроме того, в 2016-ом году Google сообщили о применении специального тензорного процессора, адаптированного под библиотеку Tensorflow.

PyTorch

Вторая библиотека — PyTorch. Этот, основанный на базе Lua-библиотеке Torch, фреймворк предназначен для задач машинного зрения (распознавание изображений и образов), а также машинного слуха (распознавание естественного языка). Разработана группой из Facebook.

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

Apache MXNet

Apache MXNet — открытая библиотека для обучения и развёртывания глубоких нейронных сетей. Поддерживается облачными платформами — в том числе Amazon Web Services и Microsoft Azure.

Данная библиотека поддерживает свёрточные нейронные сети и сети с краткосрочной памятью. Также интегрирована и поддерживает семь языков помимо Python, включая C+, Scala, Java, и Perl. Это позволяет быстро переключаться между языками во время разработки.

Caffe

Библиотека Caffe — аббревиатура Convolution Architecture For Feature Extraction — в основном предназначена для глубинного обучения свёрточных нейронных сетей. Она предназначена для быстрого обучения и работы с многомерными матрицами, так как они являются основой свёрточных нейронных сетей.

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

Отличительной особенностью библиотеки является работа с блобами — многомерными массивами данных для параллельных вычислений в центральном и графическом процессорах.

Caffe часто применяют для академических исследований и для создания прототипов.

TfLearn

TfLearn модульная библиотека-надстройка над Tensorflow. Является, по сути, высокоуровневым интерфейсом над TensorFlow, который ускоряет работу и упрощает понимание глубоких нейронных сетей.

Обеспечивает быстрое прототипирование — модульность слоёв внутри сети, настройку параметров, оптимизацию, метрики. Полная совместимость с Tensorflow. Весь функционал оттуда может быть использован в TfLearn. Важной особенностью является красивая графическая визуализация, позволяющая легко оценить такие детали как веса внутри сети, градиенты, активации нейрон и так далее. Присутствует поддержка нескольких параллельных вычислений на центральных и графических процессорах. [2] Визуализация на примере графика ошибок и точности [2]

Рис. 1. Визуализация на примере графика ошибок и точности [2]

Scikit - learn

Scikit-learn одна из самых старых и на 2012 год самая популярная библиотека для обучения нейронных сетей по данным GitHub. Создана в Goggle в 2007 году, эта библиотека является надёжным и проверенным временем инструментом в таких областях, как: классификация, регрессия, кластеризация и моделирование. [3]

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

OpenCV

OpenCV — это старая и проверенная библиотека для обучения сетей в задачах машинного зрения. Включает в себя более 2500 оптимизационных алгоритмов, позволяющих легко обучать сети для задач распознавания лиц, идентификации объектов, отслеживании движения, построение 3D моделей с помощью камер, совмещение множества изображений для получения изображения большего разрешения, поиск изображений в базах данных, отслеживание движений глаз.

Библиотека является коммерческой, однако, несмотря на это, она имеет более 47 тысяч пользователей и более 18 миллионов скачиваний. На практике применяется как для исследований, так и для правительственных целей. [4]

Заключение

Применение специализированных библиотек для нейронных сетей и их обучении в языке Python позволяет устранить такие недостатки языка как относительно слабые вычислительные мощности, особенно на слабых компьютерах, путём оптимизации или переноса вычислений на облачные сервера. Это позволят упростить обучение людей работе с нейронными сетями, а также упростить самую сложную из задач подобной работы — обучение.

Литература:

1. Why TensorFlow. — Текст: электронный // tensorflow.org: [сайт]. — URL: https://www.tensorflow.org/about?hl=en (дата обращения: 10.11.2020).

2. TFLearn: Deep learning library featuring a higher-level API for TensorFlow.. — Текст: электронный // TFLearn: [сайт]. — URL: http://tflearn.org/ (дата обращения: 10.11.2020).

3. Scikit-learn Machine Learning in Python. — Текст: электронный // Scikit-learn: [сайт]. — URL: https://scikit-learn.org/stable/index.html (дата обращения: 10.11.2020).

4. About. — Текст: электронный // opencv.org: [сайт]. — URL: https://opencv.org/about/ (дата обращения: 10.11.2020).

Основные термины (генерируются автоматически): сеть, библиотека, машинное зрение, графический процессор, обучение, обучение людей, открытая библиотека, работа.


Похожие статьи

Машинное обучение и язык программирования Python

В статье рассматриваются общие сведения о машинном обучении, его основные виды, а также наиболее значительные библиотеки для машинного обучения на языке Python.

Анализ данных на Python

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

Современные программные продукты для анализа данных

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

Автоматизированный программно-аппаратный комплекс ввода, обработки и анализа изображений

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

Язык программирования Python. Библиотеки Python

Язык программирования Python — это высокоуровневый и интерпретируемый язык программирования, который был создан Гвидо Ван Россумом в 1989 году и выпущен в 1991 году, которые «автоматизируют скучные вещи» (как выразилась одна популярная книга по изуче...

Формализация требований для средств разработки и обучения нейронных сетей

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

PlantUML: создание диаграмм с использованием текстового синтаксиса

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

Сравнение эффективности использования технологий CUDA и OpenCL при реализации нейронной сети репликации

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

Анализ средств для реализации нейронных сетей на языке программирования Java

В данной статье рассматриваются основные требования к реализации нейронных сетей, описываются возможности языка Java по созданию компонентов нейронных сетей. Так же приводится анализ и сравнение уже существующих решений для данного языка и производит...

Алгоритмы кластеризации в машинном обучении

В статье рассматриваются основные алгоритмы кластеризации в машинном обучении.

Похожие статьи

Машинное обучение и язык программирования Python

В статье рассматриваются общие сведения о машинном обучении, его основные виды, а также наиболее значительные библиотеки для машинного обучения на языке Python.

Анализ данных на Python

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

Современные программные продукты для анализа данных

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

Автоматизированный программно-аппаратный комплекс ввода, обработки и анализа изображений

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

Язык программирования Python. Библиотеки Python

Язык программирования Python — это высокоуровневый и интерпретируемый язык программирования, который был создан Гвидо Ван Россумом в 1989 году и выпущен в 1991 году, которые «автоматизируют скучные вещи» (как выразилась одна популярная книга по изуче...

Формализация требований для средств разработки и обучения нейронных сетей

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

PlantUML: создание диаграмм с использованием текстового синтаксиса

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

Сравнение эффективности использования технологий CUDA и OpenCL при реализации нейронной сети репликации

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

Анализ средств для реализации нейронных сетей на языке программирования Java

В данной статье рассматриваются основные требования к реализации нейронных сетей, описываются возможности языка Java по созданию компонентов нейронных сетей. Так же приводится анализ и сравнение уже существующих решений для данного языка и производит...

Алгоритмы кластеризации в машинном обучении

В статье рассматриваются основные алгоритмы кластеризации в машинном обучении.

Задать вопрос