在MMDetection 中 DataLoader 输出的内容不是 pytorch 能处理的标准格式,还包括了 DataContainer 对象,该对象的作用是包装不同类型的对象使之能按需组成 batch。在目标检测中,每张图片 gt bbox 个数是不一样的,如果想组成 batch tensor,要么你设置最大长度,要么你自己想办法组成 batch。而考虑到内存和效率,MMDetecti...
# base_batch_size = (8 GPUs) x (8 samples per GPU) auto_scale_lr = dict(base_batch_size=4) 4.运行训练程序 python tools/train.py /usr/src/mmdetection-main/configs/aa_my_train/yolox_l_1xb4-300e_chanchivoc2coco.py 5.训练后发现类别损失,检测框都为0 查了半天需要更改/usr/src/...
1.修改mmdetection/configs/_base_/datasets/voc0712.py: # dataset settingsdataset_type='VOCDataset'data_root='data/VOCdevkit/'img_norm_cfg=dict(mean=[123.675,116.28,103.53],std=[58.395,57.12,57.375],to_rgb=True)train_pipeline=[dict(type='LoadImageFromFile'),dict(type='LoadAnnotations',with_b...
数据配置 data = dict( samples_per_gpu=2, # batch_size大小 workers_per_gpu=2, # 每个GPU的线程数, 影响dataload的速度 # 2.1 训练集配置 train=dict( type='CocoDataset', ann_file='data/coco/annotations/instances_train2017.json', img_prefix='data/coco/train2017/', # 数据预处理步骤 ...
load data 的过程:cfg 文件里的 workers_per_gpu 是用于 DataLoader 的,开多几个子进程作为 worker 实现数据读取以及预处理,加快数据加载的效率,而 batch size 仍然是由 samples_per_gpu 决定。参考资料https://pytorch.org/docs/stable/data.htmlhttps://zhuanlan.zhihu.com/p/30934236__EOF__...
可以发现,在调用 model 本身的 train_step 前,需要额外调用 scatter 函数,前面说过该函数的作用是处理 DataContainer 格式数据,使其能够组成 batch,否则程序会报错。 如果是分布式训练,则调用的实际上是 mmcv/parallel/distributed.py/MMDistributedDataParallel,最终调用的依然是 model 本身的 train_step 或者 val_step...
data_loader=build_dataloader( dataset, samples_per_gpu=BATCH_SIZE, workers_per_gpu=0, dist=False, shuffle=False)#build the model and load checkpointcfg.model.train_cfg =None _test_cfg= cfg.get('test_cfg')if_test_cfgisNone: _test_cfg= cfg.model.get('test_cfg')assert_test_cfgisnotNo...
`fork` to speed up the trainingmp_start_method = 'fork'# Default setting for scaling LR automatically# - `enable` means enable scaling LR automatically# or not by default.# - `base_batch_size` = (8 GPUs) x (2 samples per GPU).auto_scale_lr = dict(enable=False, base_batch_size=...
data = dict( samples_per_gpu=2, # 单个 GPU 的 Batch size workers_per_gpu=2, # 单个 GPU 分配的数据加载线程数 train=dict( # 训练数据集配置 type='CocoDataset', # 数据集的类别, 更多细节请参考 https:///open-mmlab/mmdetection/blob/master/mmdet/datasets/coco.py#L19。
data = dict( # 每个GPU的batch_size,注意不能让其超过显存 samples_per_gpu=2, # 每个GPU的workers workers_per_gpu=2, train=dict(...),, val=dict(...), test=dict(...) # 每隔interval个epoch会进行一次evaluation,指标为bbox evaluation = dict(interval=1, metric='bbox') ...