def test_sdm_prototype_n(params, kp=1, ke=1, noise=0, iters=100): n, m, D = params mem = sdm.SDM(n, m, D) corruption = np.empty((iters, kp)) bits = int(n * noise) # store the same number of items multiple times for i in xrange(iters): # generate random prototype and exemplars vecs = util.random_input(n, kp) cvecs = vecs[..., None] * np.ones((n, kp, ke), dtype='i4') cvecs = util.corrupt( cvecs.reshape((n, kp*ke)), bits, with_replacement=True) ex = util.corrupt(vecs, bits) # reset the memory to its original state mem.reset() # write random inputs to memory mem.writeM(cvecs, cvecs) # read the items back out r = mem.readM(ex) # find the fraction of corrupted bits corruption[i] = np.mean(r ^ vecs, axis=0) return corruption
def test_hopfield_capacity_n(n, k=1, iters=100): corruption = np.empty((iters, k)) # store the same number of items multiple times for i in xrange(iters): # generate random inputs vecs = util.random_input(n, k) # create hopfield net mem = hop.hopnet(vecs) # read the items backout r = mem.readM(vecs, 1000) # find the largest fraction of corrupted bits corruption[i] = np.mean(r ^ vecs, axis=0) return corruption
def test_sdm_capacity_n(params, k=1, iters=100): n, m, D = params mem = sdm.SDM(n, m, D) corruption = np.empty((iters, k)) # store the same number of items multiple times for i in xrange(iters): # generate random inputs vecs = util.random_input(n, k) # reset the memory to its original state mem.reset() # write random inputs to memory mem.writeM(vecs, vecs) # read the items back out r = mem.readM(vecs) # find the largest fraction of corrupted bits corruption[i] = np.mean(r ^ vecs, axis=0) return corruption
def test_hopfield_prototype_n(n, kp=1, ke=1, noise=0, iters=100): corruption = np.empty((iters, kp)) bits = int(n * noise) # store the same number of items multiple times for i in xrange(iters): # generate random inputs vecs = util.random_input(n, kp) cvecs = vecs[..., None] * np.ones((n, kp, ke), dtype="i4") cvecs = util.corrupt(cvecs.reshape((n, kp * ke)), bits, with_replacement=True) ex = util.corrupt(vecs, bits) # create hopfield net mem = hop.hopnet(cvecs) # read the items backout r = mem.readM(ex, 1000) # find the largest fraction of corrupted bits corruption[i] = np.mean(r ^ vecs, axis=0) return corruption
def test_hopfield_noise_tolerance_n(n, k=1, noise=0, iters=100): if noise == 0: return test_hopfield_capacity_n(n, k=k, iters=iters) corruption = np.empty((iters, k)) bits = int(n * noise) # store the same number of items multiple times for i in xrange(iters): # generate random inputs vecs = util.random_input(n, k) cvecs = util.corrupt(vecs, bits) # create hopfield net mem = hop.hopnet(vecs) # read the items backout r = mem.readM(cvecs, 1000) # find the largest fraction of corrupted bits corruption[i] = np.mean(r ^ vecs, axis=0) return corruption
def test_hopfield_prototype_n(n, kp=1, ke=1, noise=0, iters=100): corruption = np.empty((iters, kp)) bits = int(n * noise) # store the same number of items multiple times for i in xrange(iters): # generate random inputs vecs = util.random_input(n, kp) cvecs = vecs[..., None] * np.ones((n, kp, ke), dtype='i4') cvecs = util.corrupt( cvecs.reshape((n, kp*ke)), bits, with_replacement=True) ex = util.corrupt(vecs, bits) # create hopfield net mem = hop.hopnet(cvecs) # read the items backout r = mem.readM(ex, 1000) # find the largest fraction of corrupted bits corruption[i] = np.mean(r ^ vecs, axis=0) return corruption
def test_sdm_prototype_n(params, kp=1, ke=1, noise=0, iters=100): n, m, D = params mem = sdm.SDM(n, m, D) corruption = np.empty((iters, kp)) bits = int(n * noise) # store the same number of items multiple times for i in xrange(iters): # generate random prototype and exemplars vecs = util.random_input(n, kp) cvecs = vecs[..., None] * np.ones((n, kp, ke), dtype="i4") cvecs = util.corrupt(cvecs.reshape((n, kp * ke)), bits, with_replacement=True) ex = util.corrupt(vecs, bits) # reset the memory to its original state mem.reset() # write random inputs to memory mem.writeM(cvecs, cvecs) # read the items back out r = mem.readM(ex) # find the fraction of corrupted bits corruption[i] = np.mean(r ^ vecs, axis=0) return corruption