Module project.test.esn_t
Expand source code
import itertools as it
from math import inf
from pprint import pprint
import numpy as np
from matplotlib.pyplot import *
from scipy import linalg, sparse
import project.esn.core as c
import project.esn.matrix as m
import project.esn.trainer as tr
import project.esn.transformer as ta
import project.esn.updater as up
import project.music_gen.core as cgen
import project.parse_midi.matrix.core as cmidi
import project.parse_midi.matrix.proc_dicts as emidi
import project.test.music_test as tgen
def multiple__(times=10, thr=lambda x: True):
def decorator(fun):
def inner():
filt = [x for x in [fun()[1] for _ in range(times)] if thr(x)]
return (times, len(filt), np.mean(filt), filt)
return inner
return decorator
@multiple__(thr=10)
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()
@multiple__()
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_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()
# @multiple__(thr=lambda x : sum(x) > 4)
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()
# tot, ind = run_multiple(10, test_generated)
Functions
def multiple__(times=10, thr=<function <lambda>>)-
Expand source code
def multiple__(times=10, thr=lambda x: True): def decorator(fun): def inner(): filt = [x for x in [fun()[1] for _ in range(times)] if thr(x)] return (times, len(filt), np.mean(filt), filt) return inner return decorator def test()-
Expand source code
def inner(): filt = [x for x in [fun()[1] for _ in range(times)] if thr(x)] return (times, len(filt), np.mean(filt), filt) def test_generated()-
Expand source code
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() def test_midi()-
Expand source code
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()-
Expand source code
def inner(): filt = [x for x in [fun()[1] for _ in range(times)] if thr(x)] return (times, len(filt), np.mean(filt), filt)