# load some basic settings
_BASE_: "./Base-RCNN-C4.yaml"
# dataset settings, souce and target domain dataset, but test set does not have domain setting
DATASETS:
# domain adaptation trainer's training setting
SOURCE_DOMAIN:
TRAIN: ("cityscapes_train",)
TARGET_DOMAIN:
TRAIN: ("foggy-cityscapes_train",)
# default trainer's training setting,
# when not using domain adaptation, load this training set to train noraml faster-rcnn
TRAIN: ("cityscapes_train",)
TEST: ("foggy-cityscapes_val",)
MODEL:
# code implementation at detection/meta_arch/sap_rcnn.py
META_ARCHITECTURE: "SAPRCNN"
BACKBONE:
# resnet baskbone
NAME: "build_resnet_backbone"
# resnet has 5 stages, only freeze stem, same as original SAP setting
FREEZE_AT: 1
WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl"
KEYPOINT_ON: False
MASK_ON: False
# determine whether to use domain adaptation or not, if not, just a normal faster rcnn
DOMAIN_ADAPTATION_ON: False
# RPN setting
PROPOSAL_GENERATOR:
# code implementation at detection/modeling/rpn.py
NAME: "SAPRPN"
ROI_HEADS:
# use detectron2 resnet default setting
NAME: "Res5ROIHeads"
# same as dataset class, it not count background in
NUM_CLASSES: 8
# determine confidence threshold,
# boxes are outputed on images while testing if its confidence is above threshold
SCORE_THRESH_TEST: 0.75
# Domain adaptation head settings, code implementation at detection/da_heads/sapnet.py
DA_HEADS:
NAME: "SAPNetMSCAM" # domain classfier
# input, feature comes from backbone
IN_FEATURE: "res4"
# IN_FEATURE channel
IN_CHANNELS: 1024
# how many different size anchors in image for anchor generator, len(anchor_size) * len(aspect_ratio)
NUM_ANCHOR_IN_IMG: 15
EMBEDDING_KERNEL_SIZE: 3
EMBEDDING_NORM: True
EMBEDDING_DROPOUT: True
RPN_MEDM_ON: False # MEDM loss is used in domain adaptation stage
TARGET_ENT_LOSS_WEIGHT: 1.0 # MEDM loss, minimal entropy term
ARGET_DIV_LOSS_WEIGHT: -0.1 # MEDM loss, maximal diversity term
# loss function, only supports cross entropy
FUNC_NAME: "cross_entropy"
# spatial pyramid pooling function, supports max and avg
POOL_TYPE: 'avg'
# adversarial loss weight, constant during training
LOSS_WEIGHT: 1.0
# spatial pyramid pooling setting
WINDOW_STRIDES: [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
WINDOW_SIZES: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 35, 37]
INPUT:
# data augmentation setting, resize short edge
MIN_SIZE_TRAIN: (600,)
MIN_SIZE_TRAIN_SAMPLING: "choice"
MIN_SIZE_TEST: 600
# optimizer setting, SGD is used in baseline training, Adam is used in SAP training
SOLVER:
AMP:
ENABLED: False # True to enable AMP, domain adaptation trainer supprots AMP training
NAME: "default" # optimizer name
IMS_PER_BATCH: 1 # batch size
# learning rate decay step
STEPS: (70000, 80000)
# learning rate
BASE_LR: 0.00001
MAX_ITER: 90000
CHECKPOINT_PERIOD: 5000
TEST:
# determine how many steps to run inference on test set to get metric(mAP), 0 is not to run
EVAL_PERIOD: 5000
# determine how many steps to get image record(eg., predicted proposal generated by rpn) during traing,
# smaller to make tfevents file larger
VIS_PERIOD: 5000
SEED: 7 # random seed