2020-01-09 15:48:17 +01:00
|
|
|
def parse_model_cfg(path):
|
|
|
|
"""Parses the yolo-v3 layer configuration file and returns module definitions"""
|
|
|
|
file = open(path, 'r')
|
|
|
|
lines = file.read().split('\n')
|
|
|
|
lines = [x for x in lines if x and not x.startswith('#')]
|
|
|
|
lines = [x.rstrip().lstrip() for x in lines] # get rid of fringe whitespaces
|
|
|
|
module_defs = []
|
|
|
|
for line in lines:
|
|
|
|
if line.startswith('['): # This marks the start of a new block
|
|
|
|
module_defs.append({})
|
|
|
|
module_defs[-1]['type'] = line[1:-1].rstrip()
|
|
|
|
if module_defs[-1]['type'] == 'convolutional':
|
|
|
|
module_defs[-1]['batch_normalize'] = 0
|
|
|
|
else:
|
|
|
|
key, value = line.split("=")
|
|
|
|
value = value.strip()
|
2020-01-29 14:45:07 +01:00
|
|
|
if value[0] == '$':
|
|
|
|
value = module_defs[0].get(value.strip('$'), None)
|
|
|
|
module_defs[-1][key.rstrip()] = value
|
2020-01-09 15:48:17 +01:00
|
|
|
|
|
|
|
return module_defs
|
|
|
|
|
|
|
|
|
|
|
|
def parse_data_cfg(path):
|
|
|
|
"""Parses the data configuration file"""
|
|
|
|
options = dict()
|
|
|
|
options['gpus'] = '0'
|
|
|
|
options['num_workers'] = '10'
|
|
|
|
with open(path, 'r') as fp:
|
|
|
|
lines = fp.readlines()
|
|
|
|
for line in lines:
|
|
|
|
line = line.strip()
|
|
|
|
if line == '' or line.startswith('#'):
|
|
|
|
continue
|
|
|
|
key, value = line.split('=')
|
|
|
|
options[key.strip()] = value.strip()
|
|
|
|
return options
|