Example #1
0
        "learning_rate": 10.0,
        "initial_weight": 1e3,  # (pA)
        "rho": 0.01,  # (Hz)
        "delta": 0.2,  # (mV)
        "E_L": -70.0,  # (mV)
        "record_stimuli_to_file": False,
        "record_connections_to_file": False,
        "record_input_to_file": False,
        "record_output_to_file": False,
        "file_name_input": "input-{generation}-{label}.npy",
        "file_name_output": "output-{generation}-{label}.npy",
        "file_name_stimuli": "stimuli-{generation}.npy",
        "file_name_template": "connections-{generation}-{label}.npy",
    }

    sim_key = dicthash.generate_hash_from_dict(sim_params)

    params = {
        "sim_key": sim_key,  # consistency check
        # machine setup
        "submit_command": "sbatch",
        "jobfile_template": "slurm_template.jdf",
        "jobname": <jobname>,
        "wall_clock_limit": "12:00:00",
        "n_processes": 8,
        "n_threads": 8,
        "n_nodes": 1,
        "mail": <mail>,
        "account": <account>,
        "partition": <partition>,
        "sim_script": "main.py",
    results_folder = 'optimized_run_time_12h'

    initial_seed_array = [
        1234567810, 1234567820, 1234567830, 1234567840, 1234567850, 1234567860,
        1234567870, 1234567880, 1234567890
    ]

    for use_drxeot_init in [True]:

        params['use_drxeot_init'] = use_drxeot_init

        for initial_seed in initial_seed_array:

            params['seeds'] = np.linspace(initial_seed, initial_seed + 3, 4)

            key = dicthash.generate_hash_from_dict(params)

            params['outputdir'] = os.path.join(os.getcwd(), results_folder,
                                               key)
            params['workingdir'] = os.getcwd()

            submit_job = True

            print('preparing job')
            print(' ', params['outputdir'])

            utils.mkdirp(params['outputdir'])
            utils.write_pickle(
                params, os.path.join(params['outputdir'], 'params.pickle'))
            utils.create_jobfile(params)
            utils.copy_file(params['sim_script'], params['outputdir'])
Example #3
0
        # evo parameters
        "population_params": {"n_parents": 8, "mutation_rate": 0.05},
        "ea_params": {"n_offsprings": 8, "n_breeding": 8, "tournament_size": 1},
        "genome_params": {
            "n_inputs": 2,
            "n_outputs": 1,
            "n_columns": 5,
            "n_rows": 1,
            "levels_back": None,
        },
    },
}

params["md5_hash_sim_script"] = utils.md5_file(params["machine_params"]["sim_script"])

key = dicthash.generate_hash_from_dict(params, blacklist=[("gp_params", "max_generations")])

params["machine_params"]["workingdir"] = os.getcwd()
params["machine_params"]["outputdir"] = os.path.join(params["machine_params"]["workingdir"], key)

print("preparing job")
print(" ", params["machine_params"]["outputdir"])

utils.mkdirp(params["machine_params"]["outputdir"])
utils.write_json(params, f"{params['machine_params']['outputdir']}/params.json")
utils.create_jobfile(params["machine_params"])
utils.copy_file(params["machine_params"]["sim_script"], params["machine_params"]["outputdir"])
for fn in ["write_job.py", "sim_utils.py", "primitive_utils.py"]:
    utils.copy_file(fn, params["machine_params"]["outputdir"])

os.chdir(params["machine_params"]["outputdir"])