X = data['X'] hi = data['hi'] face = data['face'] num1 = data['num1'] num2 = data['num2'] num3 = data['num3'] num4 = data['num4'] data.close() #inputs = np.hstack([face, X, hi, num1, num2, num3, num4]) inputs = np.hstack([face, X, hi, num1, num2]) hop = hopfield.hopnet(inputs) addresses = inputs.copy() numNeurons, numPatterns = addresses.shape numIters = 1000 print "uncorrupted tests" for i in xrange(numPatterns): a = addresses[:, i] d = hop.read(a, numIters).reshape((10, 10), order='F') plt.figure(i) plot_io(a.reshape((10, 10), order='F'), d) print "now with corruption" for i in xrange(numPatterns): a = corrupt(addresses[:, i], 10) d = hop.read(a, numIters).reshape((10, 10), order='F') plt.figure(i + numPatterns) plot_io(a.reshape((10, 10), order='F'), d)
# <codecell> reload(sdm) mem = sdm.SDM(100, 10000, 40) print "Addresses in hamming radius:", mem._select(inputs).sum(axis=0) addresses = inputs.copy() mem.writeM(addresses, inputs) # <codecell> for i in xrange(7): a = corrupt(addresses[:, i], 10) d = mem.read(a).reshape((10, 10), order='F') plt.figure(i) plot_io(a.reshape((10, 10), order='F'), d) # <codecell> c = 5 # amount of bits to corrupt n = 15 # number of exemplars exemplars = np.empty((100, n), dtype='i4') plt.figure(1) plt.clf() for i in xrange(n): e = corrupt(face, c) exemplars[:, i] = e[:, 0] plt.subplot(3, 5, i+1) plt.imshow(e.reshape((10, 10), order='F'), cmap='gray', interpolation='nearest') plt.xticks([], [])
mem1 = sdm.SDM(n, m, D) mem1.writeM(cvecs, cvecs) r1 = mem1.readM(ex) mem2 = hop.hopnet(cvecs) r2 = mem2.readM(ex, 1000) for i in xrange(nex): plt.clf() plt.imshow(cvecs[:, i].reshape((16, 16), order="F"), cmap="gray", vmin=0, vmax=1, interpolation="nearest") plt.xticks([], []) plt.yticks([], []) save("vi_ex%d" % i) plt.clf() util.plot_io(ex.reshape((16, 16), order="F"), r1.reshape((16, 16), order="F")) save("vi_sdm") plt.clf() util.plot_io(ex.reshape((16, 16), order="F"), 1 - r2.reshape((16, 16), order="F")) save("vi_hop") # <codecell> import scipy.io as io import numpy as np import matplotlib.pyplot as plt import sdm as sdm from util import corrupt, plot_io, save # data = io.loadmat('sequencePatterns.mat')
mem2 = hop.hopnet(cvecs) r2 = mem2.readM(ex, 1000) for i in xrange(nex): plt.clf() plt.imshow(cvecs[:, i].reshape((16, 16), order='F'), cmap='gray', vmin=0, vmax=1, interpolation='nearest') plt.xticks([], []) plt.yticks([], []) save("vi_ex%d" % i) plt.clf() util.plot_io(ex.reshape((16, 16), order='F'), r1.reshape((16, 16), order='F')) save("vi_sdm") plt.clf() util.plot_io(ex.reshape((16, 16), order='F'), 1 - r2.reshape( (16, 16), order='F')) save("vi_hop") # <codecell> import scipy.io as io import numpy as np import matplotlib.pyplot as plt import sdm as sdm from util import corrupt, plot_io, save