Yolov8 - обучаем нейросеть на своих данных
В данной статье будет мини гайд по обучению Yolov8 на своем ПК
Люди со слабыми видеокартами или картами от AMD гайд к сожалению, не для вас. Так же я предоставлю в конце результат как я смог обучить нейросеть для определения отзывов оформленных не по 3.15
С чего начнем? С установки Anaconda.
Anaconda-это дистрибутив языков программирования Python и R для научных вычислений (data science, приложения машинного обучения, крупномасштабная обработка данных, предиктивная аналитика и т.д.), направленный на упрощение управления пакетами и их развертывания. Дистрибутив включает в себя пакеты data-science, подходящие для Windows, Linux и macOS.
Переходим по ссылке https://www.anaconda.com/ и нажимаем Free Download
Скачиваем Anaconda
Затем выбираем версию под Windows и устанавливаем ее
Следуйте скриншотам при установке
Видео-гайд по установке Anaconda
После установки Anaconda, нам необходимо установить Microsoft C++ Build tools, CUDA, cuDNN
Установить Microsoft C++ Build Tools можно здесь - https://visualstudio.microsoft.com/ru/visual-cpp-build-tools/
При установке не забываем ставить галочку на C++ build tools
Перейдем на сайт https://developer.nvidia.com/cuda-toolkit
жмем зеленую кнопку Download Now
Выбираем Windows, архитектуру, версию Windows и тип установщика.
нажимаем Download и скачиваемУстановка Cuda
Переходим по ссылке https://developer.nvidia.com/rdp/cudnn-archive
Скачиваем cuDNN
Жмем зеленую кнопку, нас должно переадресовать.
Если просит войти - проходим авторизацию в Nvidia
Затем ставим галочку и скачиваем Local installer for WindowsУстанавливаем cuDNN
Открываем архив и из него bin, include, lib>x64 перетаскиваем в папку с CUDA.
1. Ищем в пуске Изменение системных переменных среды
3. Нажимаем на кнопку "Переменные среды..."
Нажимаем на Path несколько раз
Нажимаем New и добавляем путь до CUDA/bin, CUDA/libnvvp
Открываем консоль cmd.exe и пишем в ней nvcc --version
Все необходимое мы поставили, теперь плавно переходим к обучению нейросети. Начнем с создания пространства для Anaconda
Открываем консоль Anaconda и пишем там conda create -n lzt python=3.10.6 anaconda. Таким образом мы создадим окружающую среду для всего этого
Открываем Anaconda и создаем пространство
ожидаем когда все пакеты установятся.
Пишем conda activate lzt и теперь мы сидим под данным окружением
Устанавливаем PyTorch с поддержкой GPU для нашей анаконды
Переходим на сайт https://pytorch.org/
Устанавливаем необходимую для нас версию
Нам выдали подобную команду которую нам необходимо вставить в Anaconda: pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
Если после установки у вас torch cuda is available = True значит все сделали правильно
После всех проделанных действий устанавливаем Ultralytics для работы yolov8
Все необходимое для работы мы установили, сейчас наша главная цель создать датасет, а затем скормить его для обучения.
Переходим на сайт https://app.roboflow.com/ и регистрируемся, если ранее это не было сделано. Я пользуюсь данным сайтом длительное время, с помощью него можно будет максимально удобно создавать датасеты
После регестрации, нам необходимо создать проект
Нажимаем на фиолетовую кнопочку Create New Project
Создаем проект, в данном примере определение объектов на фотографии.После того как проект был создан - необходимо загрузить изображения, а затем для каждого с помощью специального инструмента выделить объект для которого мы будем обучать нашу нейросеть.
После загрузки нажимаем Save and Continue
Назначаем объекты на наших изображениях
и начинаем выделять объекты на фотографии
После завершения процесса с каждым изображением нажимаем Add Images и добавляем их в датасетСкачиваем датасет с сайта и на его основе будем переходить к обучению нейросети
После завершения процесса жмем
и скачиваем его на наш компьютер в формате yolov8 zip архивом
Подготавливаем файл train.py с помощью которого будем запускать тренировку
from ultralytics import YOLO # Load a model model = YOLO("yolov8n.yaml") # build a new model from scratch # Use the model if __name__ == '__main__': results = model.train(data="./data.yaml", epochs=2500, patience=0) # train the model
Закидываем data.yaml из архива в папку к train.py
Не забудьте подправить пути если это необходимо
Закидываем сам dataset на рабочий стол
Запускаем тренировку нейросети
Указываем путь к папке с файлом train.py для Anaconda
Пишем python train.py в консоль
Процесс обучения должен был запуститься
По окончанию тренировки мы получим сообщение с путем к нашей обученной модели.
Далее данную модель можно будет дообучать когда захотите необходимо добавить resume=True в файле train.py и указать нашу модель
На этом гайд закончен. Мы обучили модель на собственных данных которую можно будет использовать для распознавания объектов. Так же как и обещал покажу свой обученный датасет который я использую для определения отзывов оформленных не по 3.15