in experiment_utils/experiment_repo.py [0:0]
def create_new_experiment(self, hyperparameters,
name='', description='', verbose=True):
new_id = self.gen_short_uuid()
# get job IDs from cluster
job_id = ""
try:
# HYDRA + SUBMITIT
if submitit.JobEnvironment().job_id is not None:
job_id = submitit.JobEnvironment().job_id
except:
print("Does not use submitit")
new_id = new_id + "_" + job_id
creation_time = datetime.now(
timezone.utc).strftime('%Y-%m-%d_%H-%M-%S_%Z')
username = getpass.getuser()
# name enables extra name for experiment ID
# experiment_id_by_name maps name to ID
if name != '':
assert name not in self.experiment_id_by_name
assert name not in self.experiments
new_experiment = {'id': new_id,
'hyperparameters': hyperparameters,
'username': username,
'name': name,
'description': description,
'creation_time': creation_time,
'best_acc1': -1,
'acc1': -1,
'acc5': -1,
'val_loss': -1,
}
self.experiments[new_id] = new_experiment
if name != '':
self.experiment_id_by_name[name] = new_id
# save experiment metadata in json file
local_exp_json_folder = os.path.join(self.metadata_filepath,
self.local_dir_name)
print(local_exp_json_folder)
if not os.path.isdir(local_exp_json_folder):
os.makedirs(local_exp_json_folder)
json_filename_local = new_id + "_exp.json"
self.experiment_metadata_filepath_local = os.path.join(
local_exp_json_folder, json_filename_local)
self.store_experiment_metadata_local()
if verbose:
print(f'Created a new experiment with id "{new_id}"')
return new_id