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:])
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')