def rvsigma(xval, lineval):
	WI = generate_input_matrix(lineval, q)
	W = generate_matrix_from_sigma(xval, q)
	#make_sparse(W, lineval)
	
	mc = memory_capacity(W, WI, memory_max=150, iterations=1200, iterations_coef_measure=1000, use_input=False, target_later=True)
	return mc
def compute():
	global values

	if not os.path.isdir(savedir):
		print("dir {} does not exist, creating".format(savedir))
		os.mkdir(savedir)

	total_values = get_total_values()
	total_lengths = [len(total_values[si]) for si, _ in enumerate(xticks)]

	start = time()
	t = time()

	values = [list() for _ in xticks]
	try:
		for it in itertools.count():
			for si, sigma in enumerate(xticks):
				W = generate_matrix_from_sigma(sigma) #generate_matrix_from_sigma(sigma)
				WI = generate_input_matrix(tau)

				mc = memory_capacity(W, WI, memory_max=150, iterations=1200, iterations_coef_measure=1000, use_input=False, target_later=True)
				values[si].append(mc)
			print("counted to", it)
			if time() > t + 10:
				xtickstds = np.zeros(len(xticks))
				for si, sigma in enumerate(xticks):
					xtickstds[si] = np.std(values[si]) / np.sqrt(len(values[si]) + total_lengths[si])
				print("max standard error of MC sample average:", np.max(xtickstds))
				t = time()
	except KeyboardInterrupt:
		save_values(values)

	print("total:", round(time() - start), 'seconds')
Exemplo n.º 3
0
def measure_mc(W, WI):
    return memory_capacity(W,
                           WI,
                           memory_max=150,
                           iterations=1200,
                           iterations_coef_measure=1000,
                           use_input=False,
                           target_later=True)
Exemplo n.º 4
0
def measure_mc(W, WI):
    return memory_capacity(W, WI,
                           memory_max=int(1.1*WI.shape[0]),
                           iterations=1200,
                           iterations_coef_measure=1000,
                           use_input=False,
                           target_later=True,
                           calc_lyapunov=False)
def measure(**kwargs):
	mcs = np.zeros(matrices)
	for it in range(matrices):
		WI = np.random.uniform(-tau, tau, q)
		W = np.random.normal(0, sigma, [q, q])
		mc = memory_capacity(W, WI, memory_max=2*q, iterations=it_pinv, iterations_coef_measure=it_cc, **kwargs)
		mcs[it] = mc
	return mcs
def measure_mc(W, WI, calc_lyapunov):
    return memory_capacity(W,
                           WI,
                           memory_max=memory_max,
                           iterations=1200,
                           iterations_coef_measure=1000,
                           use_input=False,
                           target_later=True,
                           calc_lyapunov=calc_lyapunov)
def rvsmax(xval, lineval):
	WI = generate_input_matrix(lineval, q)
	W = generate_matrix_from_sigma(1, q)
	#make_sparse(W, lineval)
	#W = W * (xval / np.linalg.svd(W, compute_uv=0)[0])
	W = normalize_smax(W, xval)
	
	mc = memory_capacity(W, WI, memory_max=150, iterations=1200, iterations_coef_measure=1000, use_input=False, target_later=True)
	return mc
def rvrho(xval, lineval):
	WI = generate_input_matrix(lineval, q)
	W = generate_matrix_from_sigma(1, q)
	#make_sparse(W, lineval)
	#if np.max(np.abs(np.linalg.eig(W)[0])) == 0:
#		ipdb.set_trace()
	
	W = normalize_rho(W, xval)
	
	mc = memory_capacity(W, WI, memory_max=150, iterations=1200, iterations_coef_measure=1000, use_input=False, target_later=True)
	return mc
def measure_mc(W):
    # print(W[0])
    W = np.array(W[0]).reshape((100, 100))
    return memory_capacity(W,
                           WI,
                           memory_max=memory_max,
                           iterations=1200,
                           iterations_coef_measure=1000,
                           use_input=False,
                           target_later=True,
                           calc_lyapunov=False)
def rvgen(xval, lineval, Wgen):
    WI = generate_input_matrix(tau, lineval)
    W = Wgen(xval, lineval)

    mc = memory_capacity(W,
                         WI,
                         memory_max=int(lineval * 3 / 2),
                         iterations=1200,
                         iterations_coef_measure=1000,
                         use_input=False,
                         target_later=True)
    return mc
Exemplo n.º 11
0
def rvsigma(xval, lineval):
    WI = generate_input_matrix(tau, q)
    W = generate_matrix_from_sigma(xval, q)
    make_sparse(W, lineval)

    mc = memory_capacity(W,
                         WI,
                         memory_max=150,
                         iterations=1200,
                         iterations_coef_measure=1000,
                         use_input=False,
                         target_later=True)
    return mc
Exemplo n.º 12
0
def rvsmax(xval, lineval):
    WI = generate_input_matrix(tau, q)
    W = generate_matrix_from_sigma(1, q)
    make_sparse(W, lineval)
    #W = W * (xval / np.linalg.svd(W, compute_uv=0)[0])
    W = normalize_smax(W, xval)

    mc = memory_capacity(W,
                         WI,
                         memory_max=150,
                         iterations=1200,
                         iterations_coef_measure=1000,
                         use_input=False,
                         target_later=True)
    return mc
Exemplo n.º 13
0
def rvrho(xval, lineval):
    WI = generate_input_matrix(tau, q)
    W = generate_matrix_from_sigma(1, q)
    make_sparse(W, lineval)
    #if np.max(np.abs(np.linalg.eig(W)[0])) == 0:
    #		ipdb.set_trace()

    W = normalize_rho(W, xval)

    mc = memory_capacity(W,
                         WI,
                         memory_max=150,
                         iterations=1200,
                         iterations_coef_measure=1000,
                         use_input=False,
                         target_later=True)
    return mc
def compute():
    global values

    if not os.path.isdir(savedir):
        print("dir {} does not exist, creating".format(savedir))
        os.mkdir(savedir)

    total_values = get_total_values()
    total_lengths = [len(total_values[si]) for si, _ in enumerate(xticks)]

    start = time()
    t = time()

    values = [list() for _ in xticks]
    try:
        for it in itertools.count():
            for si, sigma in enumerate(xticks):
                W = generate_matrix_from_sigma(
                    sigma)  #generate_matrix_from_sigma(sigma)
                WI = generate_input_matrix(tau)

                mc = memory_capacity(W,
                                     WI,
                                     memory_max=150,
                                     iterations=1200,
                                     iterations_coef_measure=1000,
                                     use_input=False,
                                     target_later=True)
                values[si].append(mc)
            print("counted to", it)
            if time() > t + 10:
                xtickstds = np.zeros(len(xticks))
                for si, sigma in enumerate(xticks):
                    xtickstds[si] = np.std(values[si]) / np.sqrt(
                        len(values[si]) + total_lengths[si])
                print("max standard error of MC sample average:",
                      np.max(xtickstds))
                t = time()
    except KeyboardInterrupt:
        save_values(values)

    print("total:", round(time() - start), 'seconds')
Exemplo n.º 15
0
from library.mc6 import memory_capacity
import numpy as np

q = 100
sigma = 0.1
tau = 0.1

W = np.random.normal(0, sigma, [q, q])
WI = np.random.uniform(-tau, tau, q)

for i in range(10):
    mc = memory_capacity(W, WI)
def measure_mc(W, WI, calc_lyapunov):
    return memory_capacity(W, WI, memory_max=memory_max, iterations=1200,
                           iterations_coef_measure=1000, use_input=False,
                           target_later=True, calc_lyapunov=calc_lyapunov)
def rvgen(xval, lineval, Wgen):
	WI = generate_input_matrix(tau, lineval)
	W = Wgen(xval, lineval)
	
	mc = memory_capacity(W, WI, memory_max=int(lineval*3/2), iterations=1200, iterations_coef_measure=1000, use_input=False, target_later=True)
	return mc
eta = 3 * 10**-2
N = 500


def measure_mc(W, WI):
    return memory_capacity(W,
                           WI,
                           memory_max=int(1.1 * WI.shape[0]),
                           iterations=1200,
                           iterations_coef_measure=1000,
                           use_input=False,
                           target_later=True,
                           calc_lyapunov=False)


mc = np.zeros([len(rhos), len(taus)])
for rho_idx, rho in enumerate(rhos):
    for tau_idx, tau in enumerate(taus):
        W = random.normal(0, 1, [N, N])
        W = W * (rho / np.max(np.abs(np.linalg.eig(W)[0])))
        WI = random.uniform(-tau, tau, N)

        mcs = np.zeros(ORTHOPROCESS_ITERATIONS)
        for mc_idx in range(ORTHOPROCESS_ITERATIONS):
            W = learn_orthogonal(W, eta)
            mcs[mc_idx], _ = memory_capacity(W, WI)
        print('rho={}, tau={}, mc={}'.format(rho, tau, max(mcs)))
        mc[rho_idx, tau_idx] = max(mcs)

np.save('mc', mc)
def measure_mc(W, WI):
    return memory_capacity(W, WI, memory_max=150, iterations=1000,
                           iterations_coef_measure=1000,
                           use_input=False, target_later=True,
                           )
def measure_mc(W):
    # print(W[0])
    W = np.array(W[0]).reshape((100, 100))
    return memory_capacity(W, WI, memory_max=memory_max, iterations=1200,
                           iterations_coef_measure=1000, use_input=False,
                           target_later=True, calc_lyapunov=False)
from library.mc6 import memory_capacity
import numpy as np

q = 100
sigma = 0.1
tau = 0.1

W = np.random.normal(0, sigma, [q, q])
WI = np.random.uniform(-tau, tau, q)


for i in range(10):
	mc = memory_capacity(W, WI)