示例#1
0
def main():
    random.seed(0)
    size = 40
    rbm = RBM(size * size, 1000)

    slp = 2
    #for blob, params in randomBlobs(10, size, size):
    #    rbm.v = blob.flatten()
    #    plot(rbm, blob)
    #    sleep(slp)
    #
    #    result = reshape(rbm.v, (size, size))
    #    plot(rbm, result)
    #    sleep(slp)
    #
    #    rbm.v2h()
    #    plot(rbm, blob)
    #    sleep(slp)
    #
    #    rbm.h2v()
    #    result = reshape(rbm.v, (size, size))
    #    plot(rbm, result)
    #    sleep(slp)

    every = 2000

    #m = log(.01/.1) / log(10000)
    NN = 20001
    bb = 1. / NN * log(.001 / 1.0)
    elapsed = array([])
    for ii in range(NN):
        if ii % 100 == 0:
            blob, params = randomBlobs(10, size, size).next()

        #print params

        #epsilon = .1 * (ii+1) ** m
        #epsilon = .3 * exp(bb * ii)
        epsilon = min(.1, 1.0 * exp(bb * ii))

        #time0 = time()
        rbm.learn1(blob.flatten(),
                   epsilon=epsilon,
                   activationH2V='gaussianReal',
                   param=1)
        #elapsed = hstack((elapsed, time() - time0))

        if ii % every == 0:
            print '%d: epsilon is %f' % (ii, epsilon),
            rbm.v = blob.flatten()
            result = reshape(rbm.v, (size, size))
            plot(rbm, result, 'Iteration %d' % ii, 'Data')
            p.show()
            sleep(.1) if ii == 0 else sleep(.1)

            rbm.v2h()
            rbm.h2v(activation='gaussianReal', param=0)

            result = reshape(rbm.v, (size, size))
            plot(rbm, result, 'Iteration %d' % ii, 'Reconstruction')
            p.show()
            sleep(.5) if ii == 0 else sleep(.5)

            print 'mean of last 50 errors is', mean(rbm.reconErrorNorms[-50:])
def main():
    random.seed(0)
    size = 40
    rbm = RBM(size*size, 1000)

    slp = 2
    #for blob, params in randomBlobs(10, size, size):
    #    rbm.v = blob.flatten()
    #    plot(rbm, blob)
    #    sleep(slp)
    #
    #    result = reshape(rbm.v, (size, size))
    #    plot(rbm, result)
    #    sleep(slp)
    #
    #    rbm.v2h()
    #    plot(rbm, blob)
    #    sleep(slp)
    #
    #    rbm.h2v()
    #    result = reshape(rbm.v, (size, size))
    #    plot(rbm, result)
    #    sleep(slp)

    every = 2000

    #m = log(.01/.1) / log(10000)
    NN = 20001
    bb = 1. / NN * log(.001 / 1.0)
    elapsed = array([])
    for ii in range(NN):
        if ii % 100 == 0:
            blob, params = randomBlobs(10, size, size).next()
        
        #print params

        #epsilon = .1 * (ii+1) ** m
        #epsilon = .3 * exp(bb * ii)
        epsilon = min(.1, 1.0 * exp(bb * ii))

        #time0 = time()
        rbm.learn1(blob.flatten(), epsilon = epsilon, activationH2V = 'gaussianReal', param = 1)
        #elapsed = hstack((elapsed, time() - time0))

        if ii % every == 0:
            print '%d: epsilon is %f' % (ii, epsilon),
            rbm.v = blob.flatten()
            result = reshape(rbm.v, (size, size))
            plot(rbm, result, 'Iteration %d' % ii, 'Data')
            p.show()
            sleep(.1) if ii == 0 else sleep(.1)

            rbm.v2h()
            rbm.h2v(activation = 'gaussianReal', param = 0)
            
            result = reshape(rbm.v, (size, size))
            plot(rbm, result, 'Iteration %d' % ii, 'Reconstruction')
            p.show()
            sleep(.5) if ii == 0 else sleep(.5)

            print 'mean of last 50 errors is', mean(rbm.reconErrorNorms[-50:])
示例#3
0
def main():
    random.seed(0)
    size = 2
    rbm = RBM(size * 2, 1)

    every = 40000
    #every = 100

    #m = log(.01/.1) / log(10000)
    NN = 40001
    bb = 1. / NN * log(.001 / 1.0)
    elapsed = array([])
    dataGenerator = randomSimpleLR(-1, size)
    for ii in range(NN):
        #if ii % 100 == 0:
        data, params = dataGenerator.next()

        #print params

        #epsilon = .1 * (ii+1) ** m
        #epsilon = .3 * exp(bb * ii)
        #epsilon = min(.1, 1.0 * exp(bb * ii))
        epsilon = .1

        #time0 = time()
        #rbm.learn1(datablob.flatten(), epsilon = epsilon, activationH2V = 'gaussianReal', param = 1)
        #elapsed = hstack((elapsed, time() - time0))

        if ii % every == 0:
            print 'Iteration %d' % ii
            #print '%d: epsilon is %f' % (ii, epsilon),
            rbm.v = data
            plot(rbm, 'Iteration %d' % ii, '0. Data')
            print 'Visible set to:'
            print rbm.v.T
            p.show()
            pause()
            #sleep(1) if ii == 0 else sleep(.1)

            rbm.v2h()
            plot(rbm, 'Iteration %d' % ii, '1. To hidden')
            print 'W * visible (then sampled) ='
            print dot(rbm._W, rbm._v).T[:, 1:]
            print rbm.h.T
            p.show()
            pause()

            rbm.h2v(activation='logisticBinary')
            plot(rbm, 'Iteration %d' % ii, '2. To visible')
            print 'W.T * hidden (then sampled) ='
            print dot(rbm._W.T, rbm._h).T[:, 1:]
            print rbm.v.T
            p.show()
            pause()

            print

            #sleep(.5) if ii == 0 else sleep(.5)

            #print 'mean of last 50 errors is', mean(rbm.reconErrorNorms[-50:])

            #print 'average elapsed is:', mean(elapsed)
            #elapsed = array([])

        rbm.learn1(data, epsilon=epsilon, activationH2V='logisticBinary')
def main():
    random.seed(0)
    size = 2
    rbm = RBM(size*2, 1)

    every = 40000
    #every = 100

    #m = log(.01/.1) / log(10000)
    NN = 40001
    bb = 1. / NN * log(.001 / 1.0)
    elapsed = array([])
    dataGenerator = randomSimpleLR(-1, size)
    for ii in range(NN):
        #if ii % 100 == 0:
        data, params = dataGenerator.next()
        
        #print params

        #epsilon = .1 * (ii+1) ** m
        #epsilon = .3 * exp(bb * ii)
        #epsilon = min(.1, 1.0 * exp(bb * ii))
        epsilon = .1

        #time0 = time()
        #rbm.learn1(datablob.flatten(), epsilon = epsilon, activationH2V = 'gaussianReal', param = 1)
        #elapsed = hstack((elapsed, time() - time0))

        if ii % every == 0:
            print 'Iteration %d' % ii
            #print '%d: epsilon is %f' % (ii, epsilon),
            rbm.v = data
            plot(rbm, 'Iteration %d' % ii, '0. Data')
            print 'Visible set to:'
            print rbm.v.T
            p.show()
            pause()
            #sleep(1) if ii == 0 else sleep(.1)

            rbm.v2h()
            plot(rbm, 'Iteration %d' % ii, '1. To hidden')
            print 'W * visible (then sampled) ='
            print dot(rbm._W, rbm._v).T[:,1:]
            print rbm.h.T
            p.show()
            pause()

            rbm.h2v(activation = 'logisticBinary')
            plot(rbm, 'Iteration %d' % ii, '2. To visible')
            print 'W.T * hidden (then sampled) ='
            print dot(rbm._W.T, rbm._h).T[:,1:]
            print rbm.v.T
            p.show()
            pause()

            print
            
            #sleep(.5) if ii == 0 else sleep(.5)

            #print 'mean of last 50 errors is', mean(rbm.reconErrorNorms[-50:])

            #print 'average elapsed is:', mean(elapsed)
            #elapsed = array([])

        rbm.learn1(data, epsilon = epsilon, activationH2V = 'logisticBinary')