in pyhanabi/tools/parse_log.py [0:0]
def parse_from_root(root, max_epoch, min_epoch, include, exclude, new_log):
"""
include means include all, &&
exclude means exclude any, ||
"""
logs = {}
root = os.path.abspath(root)
for exp in os.listdir(root):
if include:
skip = False
for s in include:
if s not in exp:
skip = True
break
if skip:
continue
skip = False
for i, s in enumerate(exclude):
if s in exp:
skip = True
break
if skip:
continue
exp_folder = os.path.join(root, exp)
log_file = os.path.join(exp_folder, "train.log")
if not os.path.exists(log_file):
log_file = os.path.join(exp_folder, "std.out")
if os.path.exists(log_file):
# try:
if new_log:
log = parse_new_log(log_file, max_epoch)
else:
log = parse_log(log_file, max_epoch)
if min_epoch > 0 and log["epoch"] < min_epoch:
print(
"%s is dropped due to being too short\n\t%d vs %d"
% (log_file, log["epoch"], min_epoch)
)
else:
logs[exp] = log
# except:
# print("something is wrong with %s" % log_file)
return logs