コード例 #1
0
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
コード例 #2
0
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
コード例 #3
0
ファイル: metrics.py プロジェクト: berkeley-cocosci/bayes-sdm
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
コード例 #4
0
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
コード例 #5
0
ファイル: metrics.py プロジェクト: berkeley-cocosci/bayes-sdm
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
コード例 #6
0
ファイル: metrics.py プロジェクト: berkeley-cocosci/bayes-sdm
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
コード例 #7
0
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
コード例 #8
0
ファイル: metrics.py プロジェクト: berkeley-cocosci/bayes-sdm
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
コード例 #9
0
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
コード例 #10
0
ファイル: metrics.py プロジェクト: berkeley-cocosci/bayes-sdm
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