1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- '''
- Created on Aug 19, 2016
- @author: Xiang Wang (xiangwang@u.nus.edu)
- '''
- __author__ = "xiangwang"
- import os
- import re
- def txt2list(file_src):
- orig_file = open(file_src, "r")
- lines = orig_file.readlines()
- return lines
- def ensureDir(dir_path):
- d = os.path.dirname(dir_path)
- if not os.path.exists(d):
- os.makedirs(d)
- def uni2str(unicode_str):
- return str(unicode_str.encode('ascii', 'ignore')).replace('\n', '').strip()
- def hasNumbers(inputString):
- return bool(re.search(r'\d', inputString))
- def delMultiChar(inputString, chars):
- for ch in chars:
- inputString = inputString.replace(ch, '')
- return inputString
- def merge_two_dicts(x, y):
- z = x.copy() # start with x's keys and values
- z.update(y) # modifies z with y's keys and values & returns None
- return z
- def early_stopping(log_value, best_value, stopping_step, expected_order='acc', flag_step=100):
- # early stopping strategy:
- assert expected_order in ['acc', 'dec']
- if (expected_order == 'acc' and log_value >= best_value) or (expected_order == 'dec' and log_value <= best_value):
- stopping_step = 0
- best_value = log_value
- else:
- stopping_step += 1
- if stopping_step >= flag_step:
- print("Early stopping is trigger at step: {} log:{}".format(flag_step, log_value))
- should_stop = True
- else:
- should_stop = False
- return best_value, stopping_step, should_stop
|