트레이닝 및 테스트에 필요한 coco 2017 데이터 셋을 준비한다.
$ wget http://images.cocodataset.org/zips/train2017.zip
$ wget http://images.cocodataset.org/zips/val2017.zip
$ wget http://images.cocodataset.org/zips/test2017.zip
$ wget http://images.cocodataset.org/zips/unlabeled2017.zip
$ unzip train2017.zip unzip val2017.zip unzip test2017.zip
$ unzip unlabeled2017.zip rm train2017.zip rm val2017.zip
$ rm test2017.zip rm unlabeled2017.zip
$ cd ../
$ wget http://images.cocodataset.org/annotations/annotations_trainval2017.zip
$ wget http://images.cocodataset.org/annotations/stuff_annotations_trainval2017.zip
$ wget http://images.cocodataset.org/annotations/image_info_test2017.zip
$ wget http://images.cocodataset.org/annotations/image_info_unlabeled2017.zip
다운받은 데이터셋을 아래 이미지와 같은 구조로 배치한다.
$ wget https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_tiny_patch4_window7_224.pth
나의 학습환경의 그래픽 카드는 1GPU(NVIDIA GeForce RTX 2060 / 6GB) 로, cascade-mask-rcnn-tiny 학습 시 CUDA out of memory error가 발생한다.
따라서, "swin root/configs/_base_datasets/coco_instance.py" 를 열어 31 line의 samples_per_gpu 값을 2 >> 1 로 수정하였다.
나의 학습환경의 경우 1GPU 이지만 tools/train.py 의 경우 오류가 발생하였고, 멀티GPU 학습을 위한 Shell인 tools/dist_train.sh 에 GPU 인자를 1로 설정하여 학습하였다.
tools/dist_train.sh 명령어 가이드
$ tools/dist_train.sh <CONFIG_FILE> <GPU_NUM> --cfg-options model.pretrained=<PRETRAIN_MODEL> model.backbone.use_checkpoint=True other optional arguments
tools/dist_train.sh 명령어 적용
$ tools/dist_train.sh 'configs/swin/cascade_mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_giou_4conv1f_adamw_1x_coco.py' 1 --cfg-options model.pretrained='checkpoint/swin_tiny_patch4_window7_224.pth' model.backbone.use_checkpoint=True