|
- # encoding: utf-8
-
- from __future__ import absolute_import
- from __future__ import division
- from __future__ import print_function
-
- import os
- import os.path as osp
- import sys
- import time
- import math
- import numpy as np
- from easydict import EasyDict as edict
- import argparse
-
- C = edict()
- config = C
- cfg = C
-
- C.seed = 12345
-
- remoteip = os.popen('pwd').read()
- if os.getenv('volna') is not None:
- C.volna = os.environ['volna']
- else:
- C.volna = '/root/paddlejob/workspace/PDSeg-SemiSeg/' # the path to the data dir.
-
-
- """please config ROOT_dir and user when u first using"""
- C.repo_name = 'PDSeg-SemiSeg'
- C.abs_dir = osp.realpath(".")
-
- C.root_dir = C.abs_dir[:C.abs_dir.index(C.repo_name) + len(C.repo_name)]
-
- C.log_dir = '/root/paddlejob/workspace/output/log'
- C.tb_dir = osp.join(C.log_dir, "tb")
-
- C.log_dir_link = osp.join(C.log_dir, 'log')
-
- # snapshot dir that stores checkpoints
- C.snapshot_dir = osp.join('/root/paddlejob/workspace/output', 'snapshot')
-
- exp_time = time.strftime('%Y_%m_%d_%H_%M_%S', time.localtime())
- C.log_file = C.log_dir + '/log_' + exp_time + '.log'
- C.link_log_file = C.log_file + '/log_last.log'
- C.val_log_file = C.log_dir + '/val_' + exp_time + '.log'
- C.link_val_log_file = C.log_dir + '/val_last.log'
-
- """ Data Dir and Weight Dir """
- C.dataset_path = osp.join(C.volna, 'DATA/city')
- C.img_root_folder = C.dataset_path
- C.gt_root_folder = C.dataset_path
- C.pretrained_model = C.volna + 'DATA/paddle-weight/resnet50_v1c.pdparams'
-
-
- ''' Experiments Setting '''
- C.labeled_ratio = 2
- C.train_source = osp.join(C.dataset_path, "config_new/subset_train/train_aug_labeled_1-{}.txt".format(C.labeled_ratio))
- C.unsup_source = osp.join(C.dataset_path, "config_new/subset_train/train_aug_unlabeled_1-{}.txt".format(C.labeled_ratio))
- C.eval_source = osp.join(C.dataset_path, "config_new/val.txt")
- C.test_source = osp.join(C.dataset_path, "config_new/test.txt")
- C.demo_source = osp.join(C.dataset_path, "config_new/demo.txt")
-
- C.is_test = False
- C.fix_bias = True
- C.bn_eps = 1e-5
- C.bn_momentum = 0.1
-
- C.cps_weight = 5
-
- """Cutmix Config"""
- C.cutmix_mask_prop_range = (0.25, 0.5)
- C.cutmix_boxmask_n_boxes = 3
- C.cutmix_boxmask_fixed_aspect_ratio = False
- C.cutmix_boxmask_by_size = False
- C.cutmix_boxmask_outside_bounds = False
- C.cutmix_boxmask_no_invert = False
-
-
- """Image Config"""
- C.num_classes = 19
- C.background = -1
- C.image_mean = np.array([0.485, 0.456, 0.406]) # 0.485, 0.456, 0.406
- C.image_std = np.array([0.229, 0.224, 0.225])
- C.image_height = 800
- C.image_width = 800
- C.num_train_imgs = 2975 // C.labeled_ratio
- C.num_eval_imgs = 500
- C.num_unsup_imgs = 2975 - C.num_train_imgs
-
- """Train Config"""
- if os.getenv('learning_rate'):
- C.lr = float(os.environ['learning_rate'])
- else:
- C.lr = 0.02
-
- if os.getenv('batch_size'):
- C.batch_size = int(os.environ['batch_size'])
- else:
- C.batch_size = 8
-
- C.lr_power = 0.9
- C.momentum = 0.9
- C.weight_decay = 1e-4
-
- C.nepochs = 240
- C.max_samples = max(C.num_train_imgs, C.num_unsup_imgs)
- C.cold_start = 0
- C.niters_per_epoch = C.max_samples // C.batch_size
-
- C.num_workers = 0
- C.train_scale_array = [0.5, 0.75, 1, 1.5, 1.75, 2.0]
-
- """Eval Config"""
- C.eval_iter = 30
- C.eval_stride_rate = 2 / 3
- C.eval_scale_array = [1, ] # 0.5, 0.75, 1, 1.5, 1.75
- C.eval_flip = False
- C.eval_base_size = 800
- C.eval_crop_size = 800
-
- """Display Config"""
- if os.getenv('snapshot_iter'):
- C.snapshot_iter = int(os.environ['snapshot_iter'])
- else:
- C.snapshot_iter = 5
- C.record_info_iter = 20
- C.display_iter = 50
- C.warm_up_epoch = 0
-
|