def main(): parser = argparse.ArgumentParser( description="PyTorch DeeplabV3Plus Training") parser.add_argument('config_file', help='config file path') parser.add_argument( "opts", help="Modify config options using the command-line", default=None, nargs=argparse.REMAINDER, ) args = parser.parse_args() cfg = get_cfg_defaults() cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) print(cfg) torch.manual_seed(cfg.SYSTEM.SEED) trainer = Trainer(cfg) for epoch in range(cfg.TRAIN.START_EPOCH, cfg.TRAIN.EPOCHS): trainer.training(epoch) trainer.writer.close()
if k in state_dict: model_dict[k] = v state_dict.update(model_dict) self.load_state_dict(state_dict) def _initialize_weights(self): for m in self.modules(): if isinstance(m, nn.Conv2d): # n = m.kernel_size[0] * m.kernel_size[1] * m.out_channels # m.weight.data.normal_(0, math.sqrt(2. / n)) torch.nn.init.kaiming_normal_(m.weight) elif isinstance(m, SynchronizedBatchNorm2d): m.weight.data.fill_(1) m.bias.data.zero_() elif isinstance(m, nn.BatchNorm2d): m.weight.data.fill_(1) m.bias.data.zero_() if __name__ == "__main__": from deeplab3.config.defaults import get_cfg_defaults cfg = get_cfg_defaults() cfg.merge_from_list( ['MODEL.BACKBONE_ZOO', True, 'MODEL.INPUT_CHANNELS', 3]) input = torch.rand(1, 3, 512, 512) model = MobileNetV2(cfg, BatchNorm=nn.BatchNorm2d) output, low_level_feat = model(input) print(output.size()) print(low_level_feat.size())
_C.MODEL.RESNETS.STEM_OUT_CHANNELS = 64 # Apply Deformable Convolution in stages # Specify if apply deform_conv on Res2, Res3, Res4, Res5 _C.MODEL.RESNETS.DEFORM_ON_PER_STAGE = [False, False, False, False] # Use True to use modulated deform_conv (DeformableV2, https://arxiv.org/abs/1811.11168); # Use False for DeformableV1. _C.MODEL.RESNETS.DEFORM_MODULATED = False # Number of groups in deformable conv. _C.MODEL.RESNETS.DEFORM_NUM_GROUPS = 1 # ---------------------------------------------------------------------------- # # Deeplab Backbone options # These options apply to networks imported from saved pytorch-deeplab-xception models # ---------------------------------------------------------------------------- # _C.MODEL.DEEPLAB = CN(get_cfg_defaults()) # ---------------------------------------------------------------------------- # # Solver # ---------------------------------------------------------------------------- # _C.SOLVER = CN() # Which optimizer to use [adamw, sgd] _C.SOLVER.OPTIMIZER = "adamw" # See detectron2/solver/build.py for LR scheduler options _C.SOLVER.LR_SCHEDULER_NAME = "WarmupMultiStepLR" _C.SOLVER.MAX_ITER = 40000 _C.SOLVER.BASE_LR = 0.001
import scipy.stats import numpy as np from tqdm import tqdm from PIL import Image from deeplab3.config.defaults import get_cfg_defaults from dataloaders.utils import sample_distribution from dataloaders.datasets.cityscapes import CityscapesSegmentation from dataloaders.datasets.coco import COCOSegmentation from dataloaders.datasets.sunrgbd import RGBDSegmentation from dataloaders.SampleLoader import SampleLoader city_rgbd = get_cfg_defaults() city_rgbd.merge_from_file('configs/cityscapes_rgbd.yaml') city_rgbd.merge_from_list([ 'DATASET.ROOT', 'datasets/cityscapes/', 'DATASET.CITYSCAPES.DEPTH_DIR', 'completed_depth' ]) sunrgbd_rgbd = get_cfg_defaults() sunrgbd_rgbd.merge_from_file('configs/sunrgbd.yaml') sunrgbd_rgbd.merge_from_list(['DATASET.ROOT', 'datasets/SUNRGBD/']) sunrgbd_rgbd_dist_train = sample_distribution(RGBDSegmentation(sunrgbd_rgbd, split='train'), n=100) sunrgbd_rgbd_dist_test = sample_distribution(RGBDSegmentation(sunrgbd_rgbd, split='test'),