Платформа «Агрориск»Управление рисками в АПК

Статья журнала

НАСТРОЙКА ВИРТУАЛЬНОГО ОКРУЖЕНИЯ ПРИ РАЗРАБОТКЕ МОДЕЛИ НЕЙРОННОЙ СЕТИ НА ОСНОВЕ PYTHON И TENSORFLOW

Цитирование

КАРАСЕВ, А.Н. НАСТРОЙКА ВИРТУАЛЬНОГО ОКРУЖЕНИЯ ПРИ РАЗРАБОТКЕ МОДЕЛИ НЕЙРОННОЙ СЕТИ НА ОСНОВЕ PYTHON И TENSORFLOW / А.Н. КАРАСЕВ // Управление рисками в АПК. – 2024. – № S3 (53). – C. -. – .

Аннотация

В статье представлена процедура настройки виртуального окружения средствами языка программирования Python при разработке модели искусственной нейронной сети для обнаружения объектов на изображениях. Рассмотрены этапы создания, активации виртуального окружения, обновления инструмента управления пакетами pip, установка библиотек ipykernel, tensorflow, object detection.

Ключевые слова

разработка программного обеспечения, виртуальное окружение, искусственные нейронные сети, Python, TensorFlow

Введение

Виртуальное окружение является неотъемлемым инструментом в разработке программного обеспечения, позволяя изолировать зависимости и избежать таким образом конфликтов между версиями библиотек, что приводит к стабильной работе проекта. Создание виртуального окружения также обеспечивает репродуцируемость результатов, что особенно важно для научных исследований, для результатов которых должна гарантироваться воспроизводимость. Управление проектом становится более эффективным благодаря виртуальному окружению, в котором установка новых библиотек или обновление существующих не приведет к воздействию на другие проекты или на систему в целом. Также важно отметить, что работа в виртуальном окружении помогает поддерживать порядок и чистоту в структуре проекта, облегчая отладку и улучшая производительность. Виртуальное окружение на языке программирования Python создается командой «python -m venv название_venv». Чтобы активировать виртуальное окружение необходимо ввести следующие команды в терминале: «source venv/bin/activate» для Linux систем, «.\venv\Scripts\activate» для Windows.

Методология

После создания виртуального окружения для проекта необходимо использовать команду «python -m pip install --upgrade pip». Эта команда обновляет инструмент управления пакетами Python (pip) до последней версии. Обновление важно, так как это обеспечивает возможность установки последних версий библиотек и обеспечивает совместимость с новыми версиями Python. Далее необходимо установить библиотеку ipykernel с помощью команды «pip install ipykernel». ipykernel предоставляет ядро IPython для Jupyter Notebook и Jupyter Lab, что позволяет создавать и запускать код Python в интерактивном режиме в этих средах. Это особенно полезно при разработке и экспериментировании с моделью искусственной нейронной сети, так как обеспечивается простое взаимодействование с данными и результатами. Также необходимо устанавить ядро IPython для виртуального окружения с помощью команды «python -m ipykernel install --user –name=название_venv». Это позволяет использовать виртуальное окружение в Jupyter Notebook или Jupyter Lab, обеспечивая изоляцию от других окружений и удобную работу проектом. После создания виртуального окружения для нашего проекта машинного обучения, важно установить необходимые библиотеки и инструменты, которые будут использоваться в разработке. Библиотека «os» в Python предоставляет удобные инструменты для взаимодействия с операционной системой: позволяет выполнять различные операции с файлами, директориями, переменными окружения и другими системными ресурсами. При работе с «os» может быть полезно знать о двух платформо-зависимых модулях: «posix» и «nt». «posix» предназначен для систем POSIX (Portable Operating System Interface), таких как UNIX и Linux, в то время как «nt» предназначен для операционных систем семейства Windows.

Результаты

Для эффективной работы над проектом нейронной сети необходимо использовать систему контроля версий, такую как Git [6]. Git – это распределенная система управления версиями, которая позволяет отслеживать изменения в исходном коде и координировать работу нескольких разработчиков над проектом. Он предоставляет возможность сохранять историю изменений, возвращаться к предыдущим версиям кода, а также объединять изменения, вносимые разными участниками. Для хостинга проектов, использующих Git, существует веб-платформа GitHub. Она предоставляет возможность разработчикам хранить, управлять и совместно работать над проектами с использованием системы контроля версий Git. GitHub также предлагает широкий спектр инструментов для сотрудничества, отслеживания ошибок, управления задачами и других функций, что делает его популярным выбором для разработчиков по всему миру. Официальная страница Tensorflow на GitHub (https://github.com/tensorflow/models) представляет собой репозиторий, содержащий множество готовых архитектур для нейронных сетей, разработанных с использованием библиотеки TensorFlow. Эти архитектуры представляют собой модели, предварительно обученные на различных наборах данных, и могут использоваться как основа для разработки собственных моделей или с целью применения в задачах компьютерного зрения. Из данного репозитория была выбрана архитектура SSD MobileNet, которая сочетает в себе высокую скорость работы и высокое качество обнаружения объектов. Архитектура модели представлена на рисунке 1. Данная модель может быть использована для решения задачи обнаружения объектов на изображениях, в частности – для локализации и идентификации клеток крови рыб с целью автоматизации лейокцитарной формулы [1], [2].

Результаты

С помощью Protobuf (Protocol Buffers) производится установка и настройка библиотеки TensorFlow Object Detection API. Protobuf — это способ сериализации данных, который позволяет эффективно передавать и хранить структурированные данные. Он используется для компиляции определений объектов обнаружения, которые описывают формат данных, передаваемых между различными частями системы. Применение Protobuf позволяет сократить размер и упростить обмен данными.

Обсуждение

Необходимо установить библиотеку TensorFlow отдельно от TensorFlow Object Detection API, так как последняя зависит от TensorFlow во время своей работы. Установка производится внутри виртуального окружения с помощью команды «pip install tensorflow», если нет графического процессора, а если он есть, то командой «pip install tensorflow-[and-cuda]».

Обсуждение

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

Выводы

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

Источники

  1. Список используемых источников
  2. 1. Свидетельство о государственной регистрации программы для ЭВМ № 2023685434 «Программное средство для идентификации популяций клеток крови рыб на основе моделей сверточной нейронной сети» / Д. В. Быков, А. В. Уколова, Г. И. Пронина, А. Н. Карасев. – EDN RFUOMS.
  3. 2. Идентификация популяций клеток крови рыб на основе сверточной нейронной сети для составления лейкограммы / Г. И. Пронина, Д. В. Быков, А. В. Уколова [и др.] // Известия Тимирязевской сельскохозяйственной академии. – 2023. – № 4. – С. 110-125. – DOI 10.26897/0021-342X-2023-4-110-125. – EDN BQSQFV.
  4. 3. Meng, J., Jiang, P., Wang, J., & Wang, K. (2021). A MobileNet-SSD Model with FPN for Waste Detection. Journal of Electrical Engineering and Technology, 17(1), DOI: 10.1007/s42835-021-00960-w. Hefei University of Technology.
  5. 4. Liu, W., Anguelov, D., Erhan, D., Szegedy, C., Reed, S., Fu, C.-Y., & Berg, A. C. (2016). SSD: Single shot multibox detector. European Conference on Computer Vision. DOI: 10.1007/978-3-319-46448-0_2
  6. 5. Creation of virtual environments [Электронный ресурс]. - Режим доступа: https://docs.python.org/3/library/venv.html. Дата доступа: 02.05.2024.
  7. 6. Installing GitHub Desktop [Электронный ресурс]. - Режим доступа: https://docs.github.com/en/desktop/installing-and-authenticating-to-github-desktop/installing-github-desktop. Дата доступа: 02.05.2024