def test_1(self): kernel = np.ones(1) C = SparseConnection(np.ones(3), np.ones(3), kernel, equation='dW/dt = 1') C.evaluate(dt=.1) assert np_equal(C.weights, np.identity(3) * 1.1)
def test_2(self): kernel = np.ones(3) * np.NaN C = SparseConnection(np.ones(3), np.ones(3), kernel, equation='dW/dt = 1') C.evaluate(dt=.1) assert np_equal(C.weights, np.zeros((3, 3)))
def test_3(self): kernel = np.ones(3) kernel[1] = np.NaN C = SparseConnection(np.ones(3), np.ones(3), kernel, equation = 'dW/dt = 1') C.evaluate(dt=0.1) assert np_equal(C.weights, np.array([[0,1,0], [1,0,1], [0,1,0]])*1.1)
def test_3(self): kernel = np.ones(3) kernel[1] = np.NaN C = SparseConnection(np.ones(3), np.ones(3), kernel, equation='dW/dt = 1') C.evaluate(dt=0.1) assert np_equal(C.weights, np.array([[0, 1, 0], [1, 0, 1], [0, 1, 0]]) * 1.1)
def test_4(self): src = np.ones((3, )) dst = zeros((3, ), 'V=I; I') kernel = np.ones(1) C = SparseConnection(src, dst('I'), kernel, equation='dW/dt = post.I') dst.run(dt=0.1) assert np_equal(C.weights, np.identity(3) * 1.1)
def test_subgroup_connections(self): src = np.ones((3, 3)) dst = Group((3, 3), '''U = A+B+V; V = C+D+Z; Z = E A;B;C;D;E''') SparseConnection(src, dst('A'), np.ones((1, 1))) SparseConnection(src, dst('B'), np.ones((1, 1))) SparseConnection(src, dst('C'), np.ones((1, 1))) SparseConnection(src, dst('D'), np.ones((1, 1))) SparseConnection(src, dst('E'), np.ones((1, 1))) Z = dst('U') links = [] for c in Z.connections: links.append(c.target_name) assert 'A' in links assert 'B' in links assert 'C' in links assert 'D' in links assert 'E' in links
def test_1(self): n = 9 Z = np.random.random(n) K = np.random.random(n//2) Z1 = DenseConnection(Z,Z,K,toric=True).output() Z2 = SparseConnection(Z,Z,K,toric=True).output() Z3 = SharedConnection(Z,Z,K,toric=True).output() Z4 = convolve(Z, K[::-1], mode='wrap') assert np_equal(Z1,Z4) assert np_equal(Z2,Z4) assert np_equal(Z3,Z4)
def test_12(self): n = 10 Z = np.random.random((n,n)) K = np.random.random((2*n,2*n)) Z1 = DenseConnection(Z,Z,K,toric=False).output() Z2 = SparseConnection(Z,Z,K,toric=False).output() Z3 = SharedConnection(Z,Z,K,toric=False,fft=False).output() Z4 = SharedConnection(Z,Z,K,toric=False,fft=True).output() Z5 = convolve(Z, K[::-1,::-1], mode='constant') assert np_equal(Z1,Z5) assert np_equal(Z2,Z5) assert np_equal(Z3,Z5) assert np_equal(Z4,Z5)
def test_1(self): n = 9 Z = np.random.random((n,n)) K = np.random.random((n//2,n//2)) Z1 = DenseConnection(Z,Z,K,toric=True).output() Z2 = SparseConnection(Z,Z,K,toric=True).output() Z3 = SharedConnection(Z,Z,K,toric=True,fft=False).output() Z4 = SharedConnection(Z,Z,K,toric=True,fft=True).output() Z5 = convolve(Z, K[::-1,::-1], mode='wrap') assert np_equal(Z1,Z5) assert np_equal(Z2,Z5) assert np_equal(Z3,Z5) assert np_equal(Z4,Z5)
def test_6(self): n = 10 Z = np.random.random((n,n)) K = np.random.random((2*n,2*n)) Z1 = DenseConnection(Z,Z,K,toric=True).output() Z2 = SparseConnection(Z,Z,K,toric=True).output() Z3 = SharedConnection(Z,Z,K,toric=True,fft=False).output() Z4 = SharedConnection(Z,Z,K,toric=True,fft=True).output() K_ = K[5:15,5:15] Z5 = convolve(Z, K_[::-1,::-1], mode='wrap') assert np_equal(Z1,Z5) assert np_equal(Z2,Z5) assert np_equal(Z3,Z5) assert np_equal(Z4,Z5)
def test_2(self): kernel = np.ones(3)*np.NaN C = SparseConnection(np.ones(3), np.ones(3), kernel, equation = 'dW/dt = 1') C.evaluate(dt=.1) assert np_equal(C.weights, np.zeros((3,3)))
def test_1(self): kernel = np.ones(1) C = SparseConnection(np.ones(3), np.ones(3), kernel, equation = 'dW/dt = 1') C.evaluate(dt=.1) assert np_equal(C.weights, np.identity(3)*1.1)