Loading configs/voc_train.sh 0 → 100644 +17 −0 Original line number Diff line number Diff line #!/usr/bin/env bash PYTHON=${PYTHON:-"python"} GPUS=$1 $PYTHON -m torch.distributed.launch --nproc_per_node=$GPUS \ --master_port=$((RANDOM + 10000)) --use_env $(dirname "$0")/../train.py \ --trains "voc_2007_trainval" "voc_2012_trainval" \ --tests "voc_2007_test" "voc_clipart_traintest" \ --eval-types "voc" \ --lr-steps 16 22 \ --epochs 25 \ --batch-size 1 \ --num-classes 21 \ --work-dir "works_dir/voc_2_clipart" \ --lr 1e-5 ${@:2} No newline at end of file data/build.py +69 −4 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ import torch from torch.utils.data import ConcatDataset, DataLoader from . import collate_fn from .cityscape import CityscapeDataset from .datasets import * cityscapes_images_dir = '/data7/lufficc/cityscapes/leftImg8bit' foggy_cityscapes_images_dir = '/data7/lufficc/cityscapes/leftImg8bit_foggy' Loading Loading @@ -53,17 +53,82 @@ DATASETS = { "root": "/data7/lufficc/coco/val2017", 'train': False, }, 'voc_2007_trainval': { 'root': '/data7/lufficc/voc/VOCdevkit/VOC2007', 'split': 'trainval', 'train': True, }, 'voc_2012_trainval': { 'root': '/data7/lufficc/voc/VOCdevkit/VOC2012', 'split': 'trainval', 'train': True, }, 'voc_2007_test': { 'root': '/data7/lufficc/voc/VOCdevkit/VOC2007', 'split': 'test', 'train': False, }, 'voc_watercolor_train': { 'root': '/data7/lufficc/cross_domain_detection/watercolor', 'split': 'train', 'train': True, }, 'voc_watercolor_test': { 'root': '/data7/lufficc/cross_domain_detection/watercolor', 'split': 'test', 'train': False, }, 'voc_comic_train': { 'root': '/data7/lufficc/cross_domain_detection/comic', 'split': 'train', 'train': True, }, 'voc_comic_test': { 'root': '/data7/lufficc/cross_domain_detection/comic', 'split': 'test', 'train': False, }, 'voc_clipart_train': { 'root': '/data7/lufficc/cross_domain_detection/clipart', 'split': 'train', 'train': True, }, 'voc_clipart_test': { 'root': '/data7/lufficc/cross_domain_detection/clipart', 'split': 'test', 'train': False, }, 'voc_clipart_traintest': { 'root': '/data7/lufficc/cross_domain_detection/clipart', 'split': 'traintest', 'train': False, }, } def build_datasets(names, is_train=True): assert len(names) > 0 datasets = [] for name in names: cfg = DATASETS[name] cfg = DATASETS[name].copy() cfg['dataset_name'] = name if 'cityscapes' in name: dataset = CityscapeDataset(**cfg) elif 'coco' in name: dataset = MSCOCODataset(**cfg) elif 'voc' in name: dataset = CustomVocDataset(**cfg) else: raise NotImplementedError print('{:<24}: {}'.format(dataset.dataset_name, len(dataset))) datasets.append(dataset) if is_train: return [ConcatDataset(datasets)] return datasets if len(datasets) == 1 else [ConcatDataset(datasets)] return datasets Loading data/coco_eval.py +1 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ def coco_evaluation(dataset, predictions, output_dir, iou_type='bbox', iteration [ { "image_id": image_id, "category_id": dataset.label2cat[labels[k]], "category_id": labels[k], "bbox": [box[0], box[1], box[2] - box[0], box[3] - box[1]], # to xywh format "score": scores[k], } Loading data/datasets/__init__.py 0 → 100644 +6 −0 Original line number Diff line number Diff line from .coco import MSCOCODataset from .cityscape import CityscapeDataset from .voc import CustomVocDataset from .dataset import COCODataset, VOCDataset __all__ = ['MSCOCODataset', 'CityscapeDataset', 'CustomVocDataset', 'COCODataset', 'VOCDataset'] data/cityscape.py→data/datasets/cityscape.py +2 −2 Original line number Diff line number Diff line Loading @@ -44,6 +44,6 @@ test_transforms = [ class CityscapeDataset(COCODataset): CLASSES = ('__background__', 'person', 'rider', 'car', 'truck', 'bus', 'train', 'motorcycle', 'bicycle',) def __init__(self, ann_file, root, train=True): def __init__(self, train=True, **kwargs): transforms = train_transforms if train else test_transforms super().__init__(ann_file, root, transforms=transforms, remove_empty=train) super().__init__(transforms=transforms, remove_empty=train, **kwargs) Loading
configs/voc_train.sh 0 → 100644 +17 −0 Original line number Diff line number Diff line #!/usr/bin/env bash PYTHON=${PYTHON:-"python"} GPUS=$1 $PYTHON -m torch.distributed.launch --nproc_per_node=$GPUS \ --master_port=$((RANDOM + 10000)) --use_env $(dirname "$0")/../train.py \ --trains "voc_2007_trainval" "voc_2012_trainval" \ --tests "voc_2007_test" "voc_clipart_traintest" \ --eval-types "voc" \ --lr-steps 16 22 \ --epochs 25 \ --batch-size 1 \ --num-classes 21 \ --work-dir "works_dir/voc_2_clipart" \ --lr 1e-5 ${@:2} No newline at end of file
data/build.py +69 −4 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ import torch from torch.utils.data import ConcatDataset, DataLoader from . import collate_fn from .cityscape import CityscapeDataset from .datasets import * cityscapes_images_dir = '/data7/lufficc/cityscapes/leftImg8bit' foggy_cityscapes_images_dir = '/data7/lufficc/cityscapes/leftImg8bit_foggy' Loading Loading @@ -53,17 +53,82 @@ DATASETS = { "root": "/data7/lufficc/coco/val2017", 'train': False, }, 'voc_2007_trainval': { 'root': '/data7/lufficc/voc/VOCdevkit/VOC2007', 'split': 'trainval', 'train': True, }, 'voc_2012_trainval': { 'root': '/data7/lufficc/voc/VOCdevkit/VOC2012', 'split': 'trainval', 'train': True, }, 'voc_2007_test': { 'root': '/data7/lufficc/voc/VOCdevkit/VOC2007', 'split': 'test', 'train': False, }, 'voc_watercolor_train': { 'root': '/data7/lufficc/cross_domain_detection/watercolor', 'split': 'train', 'train': True, }, 'voc_watercolor_test': { 'root': '/data7/lufficc/cross_domain_detection/watercolor', 'split': 'test', 'train': False, }, 'voc_comic_train': { 'root': '/data7/lufficc/cross_domain_detection/comic', 'split': 'train', 'train': True, }, 'voc_comic_test': { 'root': '/data7/lufficc/cross_domain_detection/comic', 'split': 'test', 'train': False, }, 'voc_clipart_train': { 'root': '/data7/lufficc/cross_domain_detection/clipart', 'split': 'train', 'train': True, }, 'voc_clipart_test': { 'root': '/data7/lufficc/cross_domain_detection/clipart', 'split': 'test', 'train': False, }, 'voc_clipart_traintest': { 'root': '/data7/lufficc/cross_domain_detection/clipart', 'split': 'traintest', 'train': False, }, } def build_datasets(names, is_train=True): assert len(names) > 0 datasets = [] for name in names: cfg = DATASETS[name] cfg = DATASETS[name].copy() cfg['dataset_name'] = name if 'cityscapes' in name: dataset = CityscapeDataset(**cfg) elif 'coco' in name: dataset = MSCOCODataset(**cfg) elif 'voc' in name: dataset = CustomVocDataset(**cfg) else: raise NotImplementedError print('{:<24}: {}'.format(dataset.dataset_name, len(dataset))) datasets.append(dataset) if is_train: return [ConcatDataset(datasets)] return datasets if len(datasets) == 1 else [ConcatDataset(datasets)] return datasets Loading
data/coco_eval.py +1 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ def coco_evaluation(dataset, predictions, output_dir, iou_type='bbox', iteration [ { "image_id": image_id, "category_id": dataset.label2cat[labels[k]], "category_id": labels[k], "bbox": [box[0], box[1], box[2] - box[0], box[3] - box[1]], # to xywh format "score": scores[k], } Loading
data/datasets/__init__.py 0 → 100644 +6 −0 Original line number Diff line number Diff line from .coco import MSCOCODataset from .cityscape import CityscapeDataset from .voc import CustomVocDataset from .dataset import COCODataset, VOCDataset __all__ = ['MSCOCODataset', 'CityscapeDataset', 'CustomVocDataset', 'COCODataset', 'VOCDataset']
data/cityscape.py→data/datasets/cityscape.py +2 −2 Original line number Diff line number Diff line Loading @@ -44,6 +44,6 @@ test_transforms = [ class CityscapeDataset(COCODataset): CLASSES = ('__background__', 'person', 'rider', 'car', 'truck', 'bus', 'train', 'motorcycle', 'bicycle',) def __init__(self, ann_file, root, train=True): def __init__(self, train=True, **kwargs): transforms = train_transforms if train else test_transforms super().__init__(ann_file, root, transforms=transforms, remove_empty=train) super().__init__(transforms=transforms, remove_empty=train, **kwargs)