Created
October 14, 2019 05:35
-
-
Save Tony607/2660de0813587cb3e9ff4d352ff00a8d to your computer and use it in GitHub Desktop.
How to train Detectron2 with Custom COCO Datasets | DLology
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from detectron2.engine import DefaultTrainer | |
from detectron2.config import get_cfg | |
import os | |
cfg = get_cfg() | |
cfg.merge_from_file( | |
"./detectron2_repo/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml" | |
) | |
cfg.DATASETS.TRAIN = ("fruits_nuts",) | |
cfg.DATASETS.TEST = () # no metrics implemented for this dataset | |
cfg.DATALOADER.NUM_WORKERS = 2 | |
cfg.MODEL.WEIGHTS = "detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl" # initialize from model zoo | |
cfg.SOLVER.IMS_PER_BATCH = 2 | |
cfg.SOLVER.BASE_LR = 0.02 | |
cfg.SOLVER.MAX_ITER = ( | |
300 | |
) # 300 iterations seems good enough, but you can certainly train longer | |
cfg.MODEL.ROI_HEADS.BATCH_SIZE_PER_IMAGE = ( | |
128 | |
) # faster, and good enough for this toy dataset | |
cfg.MODEL.ROI_HEADS.NUM_CLASSES = 3 # 3 classes (data, fig, hazelnut) | |
os.makedirs(cfg.OUTPUT_DIR, exist_ok=True) | |
trainer = DefaultTrainer(cfg) | |
trainer.resume_or_load(resume=False) | |
trainer.train() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment