yolact&yolact++训练自己的数据

参考:下载源码和权重

 参考:运行labelme2coco

1>改classname_to_id=classname_to_id = {"name1": 1,"name2":2}

和labelme_path,saved_coco_path

运行后生成文件夹

coco

——annotations

————instances_train2017.json

————instances_val2017.json

——images

————train2017

————val2017

2>修改配置文件config.py

COCO_CLASSES={'name1','name2'}

COCO_LABEL_MAP={1:1,2:2}

dataset_base的train_images、val_images

coco_base_config的num_classes+1

yolact_base_config的max_iter调整训练次数

backbones的path修改权重文件

3>开始训练

python train.py --config=yolact_base_config --batch_size=4  --save_interval=10000

中断后继续

python train.py --config=yolact_base_config --batch_size=4  --resume=weights/yolact_base_x_x_interrupt.pth --save_interval=10000

4>验证

 python eval.py --trained_model=./xxx.pth  --image=./xx.jpg

运行问题

1>size mismatch

yolact.py中state_dict = torch.load(path)下用state_dict.pop()添加所有报错的weigh/bias

2>Expected a ‘cuda‘ device type for generator but found ‘cpu‘

train.py中data.DataLoader()里添加generator=torch.Generator(device = 'cuda')

3> File "mtrand.pyx", in numpy.random.mtrand.RandomState.choice
ValueError: setting an array element with a sequence

utils/augmentations.py中添加import random

4>left = random.uniform(width - w):

uniform() missing 1 required positional argument: 'b'

加另一个下限参数0

5> random.randint(2):

randint() missing 1 required positional argument: 'b'

加另一个下限参数0

6>min_iou,max_iou=mode

not enough values to unpack(expected 2,got 1)

mode = random.choices(self.sample_options)下修改

 if mode == [None]:
    return image, masks, boxes, labels
 if mode != None:
    min_iou, max_iou = mode[0][0],mode[0][1]

 7>RuntimeError: CUDA out of memory

调小batch_size

yolact++

下载yolact++权重, DCNv2源码 覆盖yolact/external/DCNv2

链接本地cuda

export CUDA_HOME=/home/usr/local/cuda-x.x

验证当前环境下存在cuda

nvcc -V

编译DCNv2

python ./external/DCNv2/setup.py build develop

验证编译

python ./external/DCNv2/testcuda.py

出现Backward is not reentrant或正常运行则编译成功

修改./data/config.py

DATASETS下添加

coco2017_custom_dataset = dataset_base.copy({
    'name': 'COCO 2017',
    'train_info': 'xx.json',
    'valid_info': 'xx.json',
    'class_names': ('xx','yy','zz')
})

YOLACT++ CONFIGS下添加

yolact_coco_custom_config = yolact_plus_resnet50_config.copy({
    'name': 'yolact_coco_custom',
    'path': 'xx.pth',
    'dataset': coco2017_custom_dataset,
    'num_classes': len(coco2017_custom_dataset.class_names) + 1,
    'max_size': 550,     
    'lr_steps': (280000, 600000, 700000, 750000),
    'max_iter': 300000,       
})

resnet101_backbone.copy中的path修改权重名称

开始训练

python train.py --config=yolact_coco_custom_config 

运行问题

1>not compiled with GPU support;CUDNN_STATUS_NOT_INITIALIZED

torch,torchvison,torchaudio对应关系一般是1.x.0——0.x+1.0——0.x.0

确定好torch和cuda的存在和对应关系(换装torch的时候要装对应cuda的GPU版本建议whl安装),之后删除编译好的build重新编译测试

2>_tkinter.cpython-38-x86_64-linux-gnu.so

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libpython3.x.so

3> 训练开始时停止

 迁移学习未成功,认为已经训练完成

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于训练自己的数据集,你可以按照以下步骤进行操作: 1. 数据集准备:首先,你需要准备好自己的数据集。确保数据集中包含对应的图像和相应的标注信息,这些标注信息可以是物体的边界框、类别标签等。同时,确保数据集中的图像样本多样化且覆盖你感兴趣的场景。 2. 数据预处理:在训练之前,你可能需要对数据集进行一些预处理操作,以确保数据的一致性和质量。这可能包括图像尺寸调整、数据增强(如随机裁剪、旋转、缩放等)等。 3. 模型配置:选择适合你任务的YOLO系列模型(如YOLOv3、YOLOv4等),并进行相应的配置。配置中包括网络结构、超参数、训练批次大小、学习率等。 4. 模型训练:使用准备好的数据集和配置好的模型,进行模型训练。在训练过程中,你可以使用GPU来加速训练过程,并通过监控训练损失和验证指标来评估模型的性能。 5. 模型评估和调优:在模型训练完成后,你可以使用测试集来评估模型的性能。根据评估结果,你可以进行模型的调优,如调整超参数、增加训练数据量等。 6. 模型应用:最后,你可以将训练好的模型应用于你感兴趣的任务中,如目标检测、实时物体跟踪等。 需要注意的是,YOLO系列模型是相对复杂的深度学习模型,训练过程可能需要较长时间和大量的计算资源。同时,合理的数据集规模和质量对于训练效果也具有重要影响。因此,在进行训练之前,请确保你有足够的计算资源和高质量的数据集。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值