|
import torch |
|
import os |
|
from utils.common.log import logger |
|
from utils.common.others import get_cur_time_str |
|
from utils.common.file import ensure_dir |
|
|
|
|
|
def save_models_dict_for_init(models_dict, exp_entry_file, target_file_name): |
|
target_file_path = os.path.join(os.path.dirname(exp_entry_file), f'entry_model/{target_file_name}.pt') |
|
|
|
|
|
|
|
|
|
ensure_dir(target_file_path) |
|
torch.save(models_dict, target_file_path) |
|
logger.info(f'model saved in {target_file_path} ({(os.path.getsize(target_file_path) / 1024**2):.3f}MB)') |
|
|
|
return target_file_path |
|
|
|
|
|
def get_res_save_dir(exp_entry_file, tag=None): |
|
""" |
|
Design objective: the latest exp result is located in the top of VSCode file explorer (default it is located in the most bottom) |
|
""" |
|
|
|
cur_time_str = get_cur_time_str() |
|
day, time = cur_time_str[0: 8], cur_time_str[8: ] |
|
|
|
base_p = os.path.join(os.path.dirname(exp_entry_file), f'results/{os.path.basename(exp_entry_file)}') |
|
p = os.path.join(base_p, day) |
|
|
|
if not os.path.exists(p): |
|
t = 0 |
|
else: |
|
t = len(os.listdir(p)) |
|
t = f'{(999999 - t):06d}' |
|
|
|
if tag is None: |
|
p = os.path.join(p, f'{t}-{time}') |
|
else: |
|
p = os.path.join(p, f'{t}-{time}-{tag}') |
|
|
|
return p |
|
|