Введение
Виртуальное окружение является неотъемлемым инструментом в разработке программного обеспечения, позволяя изолировать зависимости и избежать таким образом конфликтов между версиями библиотек, что приводит к стабильной работе проекта. Создание виртуального окружения также обеспечивает репродуцируемость результатов, что особенно важно для научных исследований, для результатов которых должна гарантироваться воспроизводимость. Управление проектом становится более эффективным благодаря виртуальному окружению, в котором установка новых библиотек или обновление существующих не приведет к воздействию на другие проекты или на систему в целом. Также важно отметить, что работа в виртуальном окружении помогает поддерживать порядок и чистоту в структуре проекта, облегчая отладку и улучшая производительность. Виртуальное окружение на языке программирования 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]».
Обсуждение
Хотя настройка виртуального окружения может показаться дополнительным и необязательным шагом, это вложение времени оправдывается легкостью управления зависимостями, стабильностью работы проекта и удобством перемещения между различными средами разработки.
Выводы
Таким образом, в большинстве случаев удобство работы с виртуальными окружениями перевешивает небольшие затраты времени на их настройку.