Exemplo n.º 1
0
# eta_0 = 7*10**-2
eta = 3 * 10**-2

reservoir_sizes = list(range(100, 1000 + 1, 100))

ortog_mean = np.zeros((len(reservoir_sizes), ORTHOPROCESS_ITERATIONS + 1))
ortog_std = np.zeros((len(reservoir_sizes), ORTHOPROCESS_ITERATIONS + 1))

for rsi, N in enumerate(reservoir_sizes):
    print(N)
    instances = np.zeros((INSTANCES, ORTHOPROCESS_ITERATIONS + 1))
    for inst in range(INSTANCES):
        W = np.random.normal(0, 1, [N, N])
        W = W * (rho / np.max(np.abs(np.linalg.eig(W)[0])))
        WI = random.uniform(-tau, tau, N)

        instances[inst, 0] = orthogonality(W)

        # eta = eta_0
        for it in range(ORTHOPROCESS_ITERATIONS):
            W = learn_orthogonal(W, eta)
            # W = learn_orthonormal(W, eta)
            instances[inst, it + 1] = orthogonality(W)
            # eta = eta * 0.9

    ortog_mean[rsi, :] = np.mean(instances, axis=0)
    ortog_std[rsi, :] = np.std(instances, axis=0)

    np.save('ortog_mean', ortog_mean)
    np.save('ortog_std', ortog_std)
Exemplo n.º 2
0
def measure_og(W):
    return orthogonality(W)
def measure_og(W):
    return orthogonality(W)
# eta_0 = 7*10**-2
eta = 3*10**-2

reservoir_sizes = list(range(100, 1000 + 1, 100))

ortog_mean = np.zeros((len(reservoir_sizes), ORTHOPROCESS_ITERATIONS + 1))
ortog_std = np.zeros((len(reservoir_sizes), ORTHOPROCESS_ITERATIONS + 1))

for rsi, N in enumerate(reservoir_sizes):
    print(N)
    instances = np.zeros((INSTANCES, ORTHOPROCESS_ITERATIONS + 1))
    for inst in range(INSTANCES):
        W = np.random.normal(0, 1, [N, N])
        W = W * (rho / np.max(np.abs(np.linalg.eig(W)[0])))
        WI = random.uniform(-tau, tau, N)

        instances[inst, 0] = orthogonality(W)

        # eta = eta_0
        for it in range(ORTHOPROCESS_ITERATIONS):
            W = learn_orthogonal(W, eta)
            # W = learn_orthonormal(W, eta)
            instances[inst, it + 1] = orthogonality(W)
            # eta = eta * 0.9

    ortog_mean[rsi, :] = np.mean(instances, axis=0)
    ortog_std[rsi, :] = np.std(instances, axis=0)

    np.save('ortog_mean', ortog_mean)
    np.save('ortog_std', ortog_std)
orthoa_std = np.zeros(len(reservoir_sizes))

for rsi, N in enumerate(reservoir_sizes):
    print(N)
    mc_before = np.zeros(INSTANCES)
    mc_after = np.zeros(INSTANCES)
    ob = np.zeros(INSTANCES)
    oa = np.zeros(INSTANCES)
    for inst in range(INSTANCES):
        WI = np.random.uniform(-tau, tau, N)
        # W = np.random.normal(0, 1, [N, N])
        # W = W * (rho / np.max(np.abs(np.linalg.eig(W)[0])))
        W = random.normal(0, sigma, [N, N])

        mc_before[inst], _ = measure_mc(W, WI)
        ob[inst] = orthogonality(W)

        W, WI = gs(W, WI, N)

        mc_after[inst], _ = measure_mc(W, WI)
        oa[inst] = orthogonality(W)

    mcb_mean[rsi] = np.average(mc_before)
    mcb_std[rsi] = np.std(mc_before)
    orthob_mean[rsi] = np.average(ob)
    orthob_std[rsi] = np.std(ob)

    mca_mean[rsi] = np.average(mc_after)
    mca_std[rsi] = np.std(mc_after)
    orthoa_mean[rsi] = np.average(oa)
    orthoa_std[rsi] = np.std(oa)
orthoa_std = np.zeros(len(reservoir_sizes))

for rsi, N in enumerate(reservoir_sizes):
    print(N)
    mc_before = np.zeros(INSTANCES)
    mc_after = np.zeros(INSTANCES)
    ob = np.zeros(INSTANCES)
    oa = np.zeros(INSTANCES)
    for inst in range(INSTANCES):
        WI = np.random.uniform(-tau, tau, N)
        # W = np.random.normal(0, 1, [N, N])
        # W = W * (rho / np.max(np.abs(np.linalg.eig(W)[0])))
        W = random.normal(0, sigma, [N, N])

        mc_before[inst], _ = measure_mc(W, WI)
        ob[inst] = orthogonality(W)

        W, WI = gs(W, WI, N)

        mc_after[inst], _ = measure_mc(W, WI)
        oa[inst] = orthogonality(W)

    mcb_mean[rsi] = np.average(mc_before)
    mcb_std[rsi] = np.std(mc_before)
    orthob_mean[rsi] = np.average(ob)
    orthob_std[rsi] = np.std(ob)

    mca_mean[rsi] = np.average(mc_after)
    mca_std[rsi] = np.std(mc_after)
    orthoa_mean[rsi] = np.average(oa)
    orthoa_std[rsi] = np.std(oa)