in agents/run_sweep_file.py [0:0]
def build_command(base_command, parameter_vals_dict, parameter_fmt_names):
for param in MANDATORY_PARAMETERS.keys():
if not param in parameter_vals_dict:
if param in DEFAULT_PARAMETERS:
print("using default value")
parameter_vals_dict[param] = [DEFAULT_PARAMETERS[param]]
else:
raise ValueError(f"Missing Parameter {param}")
tb = parameter_vals_dict["tensorboard"][0]
dir_ = parameter_vals_dict["dir"][0]
parameter_fmt_names.update(MANDATORY_PARAMETERS)
for key, values in parameter_vals_dict.items():
if len(values) > 1:
if not all([parameter_fmt_names[key] in i for i in (dir_, tb)]):
raise ValueError(
"Runs with different " + key +
" will overwrite each other in tensorboard or savedir")
keys, values = zip(*parameter_vals_dict.items())
commands = []
table = []
for value_combination in product(*values):
command = base_command
table.append({"aliases": tuple(sorted(parameter_fmt_names.items()))})
instance_parameters = dict(zip(keys, value_combination))
for key, value in instance_parameters.items():
value = subsitute_tokens(value, parameter_fmt_names, keys,
value_combination)
table[-1][key] = value
if key == "fmt":
continue
if key in MANDATORY_PARAMETERS:
if key == "dqn-rank-size":
if value == "optimal":
command = command.replace("RANKSIZE", optimal_rank_sizes[instance_parameters["eval-setup"]])
else:
command = command.replace("RANKSIZE", value)
else:
command = command.replace(MANDATORY_PARAMETERS[key], str(value))
else:
command += " --" + key + "=" + str(value)
# Default value params
# command = command.replace("TEST", "0")
# command.replace("BATCHSIZE", "512")
commands.append(command)
return commands, table