其他分享
首页 > 其他分享> > 记录我配置YOLOX训练自己数据集的经历,已完成

记录我配置YOLOX训练自己数据集的经历,已完成

作者:互联网

本文以在colab上训练为例:

!git clone https://github.com/roboflow-ai/YOLOX.git
%cd YOLOX
!pip3 install -U pip && pip3 install -r requirements.txt
!pip3 install -v -e .  
!pip uninstall -y torch torchvision torchaudio
# May need to change in the future if Colab no longer uses CUDA 11.0
!pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

colab上cuda是11.0,但是环境中配置的是10.2的cuda,为了成功安装apex,运行yolox,必须统一版本。

apex的安装,可参考我 的文章:安装apex

数据集的准备和yolov5一样,不赘述,目录这个样子的。

data目录在你的项目目录下(也就是在你下载的YOLOX目录下)

上面数据集的划分:网上一堆代码,split_train_val.py文件,在VOC2007目录下运行。

import os
import random
 
trainval_percent = 1.0
train_percent = 0.9
xmlfilepath = 'Annotations'
total_xml = os.listdir(xmlfilepath)
num = len(total_xml)
list = range(num)
tv = int(num * trainval_percent)
tr = int(num * train_percent)
trainval = random.sample(list, tv)
train = random.sample(trainval, tr)
 
# ImageSets目录不存在,就创建
if not os.path.exists('ImageSets/'):
    os.makedirs('ImageSets/')
# ImageSets/Main目录不存在,就创建
if not os.path.exists('ImageSets/Main/'):
    os.makedirs('ImageSets/Main/')
 
ftrainval = open('ImageSets/Main/trainval.txt', 'w')
ftest = open('ImageSets/Main/test.txt', 'w')
ftrain = open('ImageSets/Main/train.txt', 'w')
fval = open('ImageSets/Main/val.txt', 'w')
 
for i in list:
    name = '/opt/PycharmProjects/yolov5/face_dataset/images/' + total_xml[i][:-4] + '.jpg' + '\n'
    if i in trainval:
        ftrainval.write(name)
        if i in train:
            ftrain.write(name)
        else:
            fval.write(name)
    else:
        ftest.write(name)
 
ftrainval.close()
ftrain.close()
fval.close()
ftest.close()

 下载YOLOx的权重文件


!wget https://github.com/Megvii-BaseDetection/storage/releases/download/0.0.1/yolox_s.pth

修改配置:修改yolox_base.py文件

 

 

 

 

 

 

 

 

 

 大概就改这些,具体修改文件截屏都有,不细说了,配置一个环境心累的一批。

运行

!python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 1 -b 16 --fp16 -o -c yolox_s.pth

问题点:

  1. 不要把train.py文件中的--resume文件手动设置为True,第一次训练的时候会报错

标签:ImageSets,训练,记录,trainval,yolox,YOLOX,train,Main,os
来源: https://blog.csdn.net/sunchanglan151/article/details/120252306