Exemple #1
0
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__()()]
Exemple #2
0
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
Exemple #3
0
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"])
Exemple #4
0
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()
Exemple #5
0
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()
Exemple #6
0
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()
Exemple #7
0
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()