mmengine - INFO - Epoch(test) [100/498] eta: 0:02:28 time: 0.2499 data_time: 0.0011 memory: 342 03/25 14:58:51 - mmengine - INFO - Epoch(test) [200/498] eta: 0:01:32 time: 0.2535 data_time: 0.0011 memory: 342 03
config配置文件: _base_ = ['../_base_/models/faster_rcnn_r50_fpn.py','../_base_/datasets/voc0712_val.py', # 只更改了这个voc数据集的配置文件'../_base_/default_runtime.py']model = dict(roi_head=dict(bbox_head=dict(num_classes=20)))# optimizeroptimizer = dict(type='SGD', lr...
data pipeline model iteration pipeline data pipeline 依然是非常传统的使用,我们使用Dataset和DataLoader来使用多线程进行数据的加载。Dataset将会返回一个与模型前向方法相对应的数据字典。因为在目标检测中数据可能不是相同的尺寸(例如图形尺寸,bbox的尺寸等),我们引入了一个新的DataContainer类型来帮助收集与分类这些不...
接着,准备自定义的数据集,mmdetection提供了三种数据集应用方式,通常推荐使用前两种方法,即数据集转换为coco格式或中间格式,以便于后续操作。在进行数据集格式转换时,需要创建一个目录结构,包括annotations、train2017、val2017和test2017等子目录,按照coco格式进行数据整理。然后,在mmdetection目录下新建...
runtime 可配置 checkpoint 间隔多少存一个。默认 1 epoch 1 个,空间不够用😶 配置可对照 __base__ 的内容覆盖修改,更多说明见官方文档。 训练模型 # single-gpu training python tools/train.py \ configs/voc_cat/faster_rcnn_r50_fpn_1x_voc_cat.py \ --work-dir _train_voc_cat # multi-gpu tr...
import argparse import glob import multiprocessing as mp import os import time import cv2 import tqdm import os from detectron2.config import get_cfg from detectron2.data.detection_utils import read_image from detectron2.utils.logger import setup_logger from predictor import VisualizationDemo import ...
$ docker run --runtime=nvidia --name mm_prj -i -t vistart/mmdetection /bin/bash 对上面的命令解释一下:–runtime=nvidia 很关键,能使新建的 docker 容器能使用宿主机器的 GPU,不加这个参数则默认使用 CPU;–name mm_prj 是对新建的 docker 容器进行命名,该名称为 mm_prj,读者可自行修改。
img_prefix=data_root + 'val2017/', # 同上 img_scale=(1333, 800), # 同上 img_norm_cfg=img_norm_cfg, # 同上 size_divisor=32, # 同上 flip_ratio=0, # 同上 with_mask=False, # 同上 with_crowd=True, # 同上 with_label=True), # 同上 ...
model=build_detector(cfg.model,train_cfg=cfg.train_cfg,test_cfg=cfg.test_cfg)datasets=[build_dataset(cfg.data.train)] 然后直接调用train_detector 代码语言:javascript 代码运行次数:0 运行 AI代码解释 train_detector(model,datasets,cfg,distributed=distributed,validate=(not args.no_validate),timestamp=...
time.sleep(2)# Prevent possible deadlock during epoch transitionfori, data_batchinenumerate(self.data_loader): self._inner_iter = i self.call_hook('before_train_iter') self.run_iter(data_batch, train_mode=True, **kwargs) self.call_hook('after_train_iter') ...