RT-DETR训练流程

RT-DETR训练流程

配置环境

先建一个rtdetr的环境,我使用的是python3.9

pip install -r requirements.txt

不用管下什么版本的torch,里面写的都有版本
numpy最好用1.23.0,或者等后面numpy报错了再重新装这个版本

数据集准备

数据集按照如下形式摆放,但主要还是按照annotations标注文件来,有可能里面标的图片不一定是这么摆放的

path/to/coco/
  annotations/  # annotation json files
  train2017/    # train images
  val2017/      # val images

开始训练

单个cpu使用如下命令训练即可,但是开始之前建议先看看之后的参数部分

python tools/train.py -c configs/rtdetr/rtdetr_r50vd_6x_coco.yml

参数介绍

从文件位置从上到下来介绍,建议看完,或者善用搜索

configs/dataset/coco_detection.yml

# 这是修改数据集种类的位置,修改为你的数据集种类的数量+1,或者改成365,也适配coco
num_classes = 80

# 如果用的不是coco数据集填False
remap_mscoco_category: False

# 接着修改数据集路径
train_dataloader: 
  type: DataLoader
  dataset: 
    type: CocoDetection
    img_folder: # 这里是train数据集的图片位置
    ann_file: # 这里是train数据集的标注文件
    transforms:
      type: Compose
      ops: ~
  shuffle: True
  batch_size: 6
  num_workers: 0
  drop_last: True 
val_dataloader:
  type: DataLoader
  dataset: 
    type: CocoDetection
    img_folder: # 这里是val数据集的图片位置
    ann_file: # 这里是val数据集的标注文件
    transforms:
      type: Compose
      ops: ~ 

这个文件中的batch_size和num_workers好像是摆设,在这里调整了好像没用,最起码本人试了一下是这样,还是需要修改后文会讲到的dataloader文件,不放心的话可以二者保持一致。

configs/rtdetr/include/dataloader.yml

在这里修改bs和n_w,不放心的话也同时修改上文文件中的配置

configs/rtdetr/你使用的配置文件(这里拿r18举例)

# 输出文件位置,可以不用动,反正生成在根目录里面
output_dir: ./output/rtdetr_r18vd_6x_coco

# 不适用预训练权重
pretrained: False

# 不使用预训练权重的话可以直接去
# src/nn/backbone/presnet.py里面
# 如果不使用预训练权重就把这些注释了
        
        # if pretrained:
        #     state = torch.hub.load_state_dict_from_url(donwload_url[depth])
        #     self.load_state_dict(state)
        #     print(f'Load PResNet{depth} state_dict')

src/core/yaml_config.py

# 注释掉原先的,添加下面一行,是要训练的epochs数量
	# self.epoches = cfg.get('epoches', -1)
	self.epoches = 300

src/data/transforms.py

# 在这文件的随便一行位置添加
# 如果出现过什么什么像素最大值超出之类的错误,加了这个就好了
# 如果不报错也可以不加

Image.MAX_IMAGE_PIXELS = 600000000

src/nn/backbone/presnet.py

配置文件里讲了

笔者也在学习中,以后应该还会更新,不一定对

posted @ 2025-04-12 19:30  anti1hapi  阅读(976)  评论(0)    收藏  举报