| import importlib |
| import os |
| from collections import OrderedDict |
|
|
|
|
| def create_default_local_file(): |
| path = os.path.join(os.path.dirname(__file__), 'local.py') |
|
|
| empty_str = '\'\'' |
| default_settings = OrderedDict({ |
| 'workspace_dir': empty_str, |
| 'tensorboard_dir': 'self.workspace_dir + \'/tensorboard/\'', |
| 'pretrained_networks': 'self.workspace_dir + \'/pretrained_networks/\'', |
| 'lasot_dir': empty_str, |
| 'got10k_dir': empty_str, |
| 'trackingnet_dir': empty_str, |
| 'coco_dir': empty_str, |
| 'lvis_dir': empty_str, |
| 'sbd_dir': empty_str, |
| 'imagenet_dir': empty_str, |
| 'imagenetdet_dir': empty_str, |
| 'ecssd_dir': empty_str, |
| 'hkuis_dir': empty_str, |
| 'msra10k_dir': empty_str, |
| 'davis_dir': empty_str, |
| 'youtubevos_dir': empty_str}) |
|
|
| comment = {'workspace_dir': 'Base directory for saving network checkpoints.', |
| 'tensorboard_dir': 'Directory for tensorboard files.'} |
|
|
| with open(path, 'w') as f: |
| f.write('class EnvironmentSettings:\n') |
| f.write(' def __init__(self):\n') |
|
|
| for attr, attr_val in default_settings.items(): |
| comment_str = None |
| if attr in comment: |
| comment_str = comment[attr] |
| if comment_str is None: |
| f.write(' self.{} = {}\n'.format(attr, attr_val)) |
| else: |
| f.write(' self.{} = {} # {}\n'.format(attr, attr_val, comment_str)) |
|
|
|
|
| def create_default_local_file_ITP_train(workspace_dir, data_dir): |
| path = os.path.join(os.path.dirname(__file__), 'local.py') |
|
|
| empty_str = '\'\'' |
| default_settings = OrderedDict({ |
| 'workspace_dir': workspace_dir, |
| 'tensorboard_dir': os.path.join(workspace_dir, 'tensorboard'), |
| 'pretrained_networks': os.path.join(workspace_dir, 'pretrained_networks'), |
| 'lasot_dir': os.path.join(data_dir, 'lasot'), |
| 'got10k_dir': os.path.join(data_dir, 'got10k/train'), |
| 'lasot_lmdb_dir': os.path.join(data_dir, 'lasot_lmdb'), |
| 'got10k_lmdb_dir': os.path.join(data_dir, 'got10k_lmdb'), |
| 'trackingnet_dir': os.path.join(data_dir, 'trackingnet'), |
| 'trackingnet_lmdb_dir': os.path.join(data_dir, 'trackingnet_lmdb'), |
| 'coco_dir': os.path.join(data_dir, 'coco'), |
| 'coco_lmdb_dir': os.path.join(data_dir, 'coco_lmdb'), |
| 'imagenet1k_dir': os.path.join(data_dir, 'imagenet1k'), |
| 'imagenet22k_dir': os.path.join(data_dir, 'imagenet22k'), |
| 'lvis_dir': empty_str, |
| 'sbd_dir': empty_str, |
| 'imagenet_dir': os.path.join(data_dir, 'vid'), |
| 'imagenet_lmdb_dir': os.path.join(data_dir, 'vid_lmdb'), |
| 'imagenetdet_dir': empty_str, |
| 'ecssd_dir': empty_str, |
| 'hkuis_dir': empty_str, |
| 'msra10k_dir': empty_str, |
| 'davis_dir': empty_str, |
| 'youtubevos_dir': empty_str, |
| 'depthtrack_dir': os.path.join(data_dir, 'depthtrack/train'), |
| 'lasher_dir': os.path.join(data_dir, 'lasher/trainingset'), |
| 'visevent_dir': os.path.join(data_dir, 'visevent/train'), |
| 'refcoco_dir': os.path.join(data_dir, 'refcoco'), |
| 'tnl2k_dir': os.path.join(data_dir, 'tnl2k/train'), |
| 'otb99_dir': os.path.join(data_dir, 'otb_lang'), |
| }) |
|
|
| comment = {'workspace_dir': 'Base directory for saving network checkpoints.', |
| 'tensorboard_dir': 'Directory for tensorboard files.'} |
|
|
| with open(path, 'w') as f: |
| f.write('class EnvironmentSettings:\n') |
| f.write(' def __init__(self):\n') |
|
|
| for attr, attr_val in default_settings.items(): |
| comment_str = None |
| if attr in comment: |
| comment_str = comment[attr] |
| if comment_str is None: |
| if attr_val == empty_str: |
| f.write(' self.{} = {}\n'.format(attr, attr_val)) |
| else: |
| f.write(' self.{} = \'{}\'\n'.format(attr, attr_val)) |
| else: |
| f.write(' self.{} = \'{}\' # {}\n'.format(attr, attr_val, comment_str)) |
|
|
|
|
| def env_settings(): |
| env_module_name = 'lib.train.admin.local' |
| try: |
| env_module = importlib.import_module(env_module_name) |
| return env_module.EnvironmentSettings() |
| except: |
| env_file = os.path.join(os.path.dirname(__file__), 'local.py') |
|
|
| create_default_local_file() |
| raise RuntimeError('YOU HAVE NOT SETUP YOUR local.py!!!\n Go to "{}" and set all the paths you need. Then try to run again.'.format(env_file)) |
|
|