下载COCO 数据集,如下放进 mmdetection/data/coco/ 目录, COCO: http://cocodataset.org/ 代码语言:javascript 代码运行次数:0 运行 AI代码解释 mmdetection ├── data │ ├── coco │ │ ├── annotations │ │ ├── train2017 │ │ ├── val2017 │ │ ├── test2017 测试现有模型 代...
在MMDetection 中 DataLoader 输出的内容不是 pytorch 能处理的标准格式,还包括了 DataContainer 对象,该对象的作用是包装不同类型的对象使之能按需组成 batch。在目标检测中,每张图片 gt bbox 个数是不一样的,如果想组成 batch tensor,要么你设置最大长度,要么你自己想办法组成 batch。而考虑到内存和效率,MMDetecti...
−训练策略 梯度下降算法、学习率参数、batch_size、训练总轮次、学习率变化策略等等 −运行时 GPU、分布式环境配置等等 −一些辅助功能 如打印日志、定时保存checkpoint等等 ➢在 OpenMMLab 项目中,所有这些项目都涵盖在一个配置文件中,一个配置文件定义了一个完整的训练 过程 − model 字段定义模型 − data...
for i, data_batch in enumerate(self.data_loader): 进行调试,按照如下流程即可进入__getitem__函数: 网络前传流程: 通过run_iter函数可以进入网络前传流程,最复杂的部分还是bbox_head的loss计算,包括anchor的生成,anchor的assign以及anchor的sample和最后的loss计算流程。 这里分析的还是之前分析过的最简单的SECOND网...
可以发现,在调用 model 本身的 train_step 前,需要额外调用 scatter 函数,前面说过该函数的作用是处理 DataContainer 格式数据,使其能够组成 batch,否则程序会报错。 如果是分布式训练,则调用的实际上是 mmcv/parallel/distributed.py/MMDistributedDataParallel,最终调用的依然是 model 本身的 train_step 或者 val_step...
可以发现,在调用 model 本身的 train_step 前,需要额外调用 scatter 函数。前面说过,该函数的作用是处理 DataContainer 格式数据,使其能够组成 batch,否则程序会报错。 如果是分布式训练,则调用的实际上是mmcv/parallel/distributed.py/MMDistributedDataParallel,最终调用的依然是 model 本身的 train_step 或者 val_step...
DataLoader: 输出组成Batch的数据,作为model的输入; Model: 具有两个上层封装,MMDataParallel(单机版) +MMDistributedDataParallel(分布式单机/多机多卡); Loss: 运行model后输出loss以及其他信息,通过logger进行保持和可视化; Runner: 全生命周期管理,通过Hook方便的获取、修改、拦截任何生命周期数据流。
在将tensor 封装成 DataContainer 类的时候可以指定是否需要 stack ,如果指定需要 stack ,则后面加载 batch 的时候所使用的 collate_fn 会将这些 tensor stack。注意,stack 是在 collate_fn 完成的,DataContainer 只是相当于为 tensor 多加了一些属性load data 的过程:...
调整imgs_per_gpu可以修改batch大小,batch过大时可能出现shm不足,如果改为1之后依然出现内存不足,那么需要修改 num_workers=0 。 AI检测代码解析 (mmdet/datasets/loader/builder_loader.py) runtime settings中可以设置在运行过程中的各项默认参数 开始训练 ...
在使用MMDetection进行批量推理时,可能会遇到UserWarning提示:’ImageToTensor’ pipeline is replaced by ‘DefaultFormatBundle’ for batch inference. It is recommended to manually replace it in the test data pipeline in your config file. 这个问题的原因是MMDetection在新版本中,将’ImageToTensor’替换为了’Def...