def run_esn(repetition, matrix_path, idx, **kwargs): """run the esn with the current configuration """ return [ c.Run(**kwargs).load(matrix_path, idx).__enter__()() for _ in range(repetition) ] if kwargs["transformer"] not in [ t.Transformers.threshold, t.Transformers.identity ] else [c.Run(**kwargs).load(matrix_path, idx).__enter__()()]
def run_net_load_matrix(load_param: c.Res, **kwargs) -> dict: run_dict = core.Run(**{ **c.esn_gen, **kwargs }).load((c.path + load_param.value), randint(0, 9)).__enter__()() with open(c.path_esn + "_".join(res_name(run_dict)), "wb") as f: pickle.dump(run_dict, f) return run_dict
def run_network(out_transf: transf.Transformer = transf.Transformers.sig_prob, **PSO_kwargs) -> tuple: PSO_kwargs = map_params(**PSO_kwargs) load_param = PSO_kwargs.pop("reservoir") if PSO_kwargs.get( "reservoir", None) else None run_dict = (run_net_load_matrix(load_param, **PSO_kwargs) if load_param else core.Run(**{ **c.esn_gen, **PSO_kwargs }).__enter__()()) pprint(f"dumped conf : {PSO_kwargs}") return ((raw_out := run_dict["output"]), out_transf.value(0.8, transf._identity)(raw_out), run_dict["desired"])
def test(): data = np.loadtxt('/home/vimmoos/NN/testESN/MackeyGlass_t17.txt') with c.Run( **{ "data": data, "in_out": 1, "reservoir": 100, "train_len": 2000, "test_len": 2000, "init_len": 100, "leaking_rate": 0.3, "spectral_radius": 1.25, "density": .5, "reg": 1e-8 }) as gen: return gen()
def test_midi(): train_len = test_len = 970 init_len = 100 music = it.repeat( cmidi.exec_proc_dict(emidi.example_proc_dict)["matrixs"][0], 20) data = c.Data(np.array(list(music)), None, init_len, train_len, test_len) with c.Run( **{ "data": data, "in_out": 6, "reservoir": 500, "error_len": 500, "leaking_rate": 0.3, "spectral_radius": 0.8, "density": .5, "reg": 1e-8, "transformer": ta.user_threshold(0.5), }) as gen: return gen()
def test_randomMatrix(): import random train_len = test_len = 2000 data = np.array([ np.array([random.randint(0, 10) / 10]) for _ in range(train_len + test_len + 1) ]) with c.Run( **{ "data": data, "in_out": 1, "reservoir": 100, "train_len": train_len, "test_len": test_len, "init_len": 100, "leaking_rate": 0.3, "spectral_radius": 1.25, "density": .5, "reg": 1e-8 }) as gen: return gen()
def test_generated(): train_len = test_len = 1200 init_len = 200 music = (tgen.test_patterns[2] * 300) data = c.Data(np.array(list(~music)), music.tempo, init_len, train_len, test_len) with c.Run( ** { "data": data, "reservoir": 300, "in_out": 9, "leaking_rate": 0.3, "reg": 1e-8, "transformer": ta.Transformers.pow_prob, "t_param": 1, "t_squeeze": np.tanh, }).load( "/home/vimmoos/NN/resources/reservoir/0.18333333333333335_0.04_2000", 0) as gen: return gen()