示例#1
0
def st_snep( P,
             dim_s,
             dim_t,
             init_y=None,
             verbose=True,
             repeat=1,
             init_seed=None ):
    '''
    Space-time Embedding (based on pair-wise similarities)
    '''

    if verbose:
        print( "Space-Time Embedding (%s)" % opt.distribution )
        print( "%-15s = %d"   % ( "N", P.shape[0] ) )
        print( "%-15s = %d"   % ( "dim(s)", dim_s ) )
        print( "%-15s = %d"   % ( "dim(t)", dim_t ) )
        print( "%-15s = %d"   % ( "max_epochs", opt.max_epochs ) )
        print( "%-15s = %.1f" % ( "lrate (s)", opt.lrate_s ) )
        print( "%-15s = %.1f" % ( "lrate (t)", opt.lrate_t ) )
        print( "%-15s = %d"   % ( "lying", opt.lying ) )

    best_Y = None
    best_Z = None
    best_E = np.inf

    if init_seed is None: init_seed = np.random.randint( 1000000 )

    start_t = tick( verbose=verbose )

    for run in range( repeat ):
        Y, Z, E = __embed( P, dim_s, dim_t, init_y, verbose, init_seed+run )

        if E[-1] < best_E:
            best_E = E[-1]
            best_Y = Y
            best_Z = Z

        if verbose:
            tick( start_t )
            print( 'final  E=%6.3f' % E[-1] )
            print( 'record E=%6.3f' % best_E )

    return best_Y, best_Z, best_E
示例#2
0
def propagate(g,t):

    G = np.zeros([len(t), g.shape[0], g.shape[1]])

    for k in t:
        if k == 0:
            G[k,:,:] = g
        else:
            G[k,:,:] = tick(G[k-1,:,:])

    pickle.dump( G, open( "G.p", "wb" ) )
    return G
示例#3
0
    def __init__(self):
        try:
            self.camera = PiCamera()
            self.camera.resolution = (320, 240)
            self.camera.framerate = 30
            self.camera.start_preview()
            self.m = None
            try:
                self.m = Moving()
            except:
                print("Moving not possible")
                self.m = None
            time.sleep(2)
            self.t = tick(self.camera, self.m)
            self.t.start()
            self.m.start()

    #        self.m.setMotorPlan([[100,100],[100,100],[100,100],[100,100],[100,100],[100,100],[100,100],[100,100],[100,100],[100,100]])
        except:
            print("FAILED")
            traceback.print_exc()
示例#4
0
wait_clear(1)
grimace.grimace()
wait_clear(1)
bit_sad.bit_sad()
wait_clear(1)
small_neutral.small_neutral()
wait_clear(1)
very_sad.very_sad()
wait_clear(1)
neutral.neutral()
wait_clear(1)
grin.grin()
wait_clear(1)
cross.cross()
wait_clear(1)
tick.tick()
wait_clear(1)
question.question()
wait_clear(1)
speak1.speak1()
wait_clear(0.1)
speak2.speak2()
wait_clear(0.1)
speak1.speak1()
wait_clear(0.1)
speak2.speak2()
wait_clear(0.1)
speak1.speak1()
wait_clear(0.1)
speak2.speak2()
wait_clear(0.1)
示例#5
0
文件: rbm.py 项目: sunk/rbm
    def train(
        cls,
        data,  # one sample per row
        dim_h=10,  # number of hidden units
        lrate=1e-3,  # learning rate
        max_epoches=100,  # no. iterations
        batch_size=20,  # mini batch size
        seed=None,  # random seed
        shuffle=True,  # whether to shuffle the data
        train_ratio=0.9,  # the ratio of training set
        verbose=True,
    ):  # verbose output
        """
        randomly initialize a RBM object, train it based on given data
        This is the standard way of create a RBM object
        """

        n_samples, dim_v = data.shape
        n_train = int(n_samples * train_ratio)

        if verbose:
            start_t = tick()
            print("input data size %dx%d" % data.shape)
            print("%.0f%% for training, %.0f%% for validation" % (train_ratio * 100, 100 - train_ratio * 100))
            print("RBM with %d hidden units" % dim_h)
            print("learning rate %f" % lrate)
            print("run for %d epoches" % max_epoches)
            print("using batches of %d samples" % batch_size)

        # initialization
        learner = cls(dim_v, dim_h, lrate, max_epoches, batch_size, seed)

        # the bits for compute the pesudo-log-likelihood
        pll_bits_train = learner.chaos.randint(dim_v, size=n_train)
        pll_bits_valid = learner.chaos.randint(dim_v, size=(n_samples - n_train))

        # idx stores the sample index to be selected in order
        idx = range(n_samples)
        if shuffle:
            learner.chaos.shuffle(idx)

        for epoch in range(learner.max_epoches):
            if verbose:
                print("[%4d]" % epoch, end=" ")
            progress_bar = 0.05 * n_train

            for s in xrange(0, n_train, learner.batch_size):
                learner.__update(data[idx[s : s + learner.batch_size]])

                progress_bar -= learner.batch_size
                if progress_bar < 0:
                    progress_bar = 0.05 * n_train
                    if verbose:
                        print("=", end="")

            # error measure: average negative pseudo loglikelihood
            if verbose:
                print(
                    " err_train=%-8.2f" % -learner.pesudo_likelihood(data[idx[:n_train]], pll_bits_train).mean(), end=""
                )

                if n_train < n_samples:
                    print(
                        " err_valid=%-8.2f" % -learner.pesudo_likelihood(data[idx[n_train:]], pll_bits_valid).mean(),
                        end="",
                    )
                print("")

        if verbose:
            tick(start_t)
        return learner
示例#6
0
 to_read, to_write, to_error = select.select(connections,connections,connections,0)
 for socko in to_read:
     if socko == serversocket:
         print "connecting"		
         (clientsocket, address) = socko.accept()
         print "putting " + address[0] + " onto connections";
         conn_info.append(address)
         clientsocket.setblocking(0)
         connections.append(clientsocket)
         print len(connections)
     else:
         print "reader"
         try:  #i needed this try block only for google chrome! wierd.
             data = socko.recv(1024) #1024 potential problem causer
         except socket.error, msg:
             closesocket(socko)
             break
         print data
         if not data:
             print "no data"
             closesocket(socko)
             break
         try:
             handle_data(data, socko, to_read, to_write, to_error)
         except socket.error, msg:
             closesocket(socko)
 if counter % cycles_per_tick == 0:
     print connections
     tick.tick(to_read, to_write, to_error, scope)
 for socko in to_error:
     print socko + " had an error"            
示例#7
0
from tick import tick
import time

t = np.arange(10)
g, sidx = initgame(1000)
mode = 'Store'

if mode == 'Store':
    G = propagate(g, t)
    ani = visualize(G)
elif mode == 'Live':
    fig = plt.figure()
    ax = fig.gca()
    fig.show()
    G = g
    # Im = plt.imshow(g)
    # Im.show()
    while 1:
        plt.imshow(G)
        fig.canvas.draw()
        t = time.time()
        G = tick(G)
        elapsed = time.time() - t
        print(elapsed)

        # Im.set_data(G)
        # plt.draw()
else:
    G = pickle.load(open("G.p", "rb"))
    ani = visualize(G)
示例#8
0
                                             connections, 0)
 for socko in to_read:
     if socko == serversocket:
         print "connecting"
         (clientsocket, address) = socko.accept()
         print "putting " + address[0] + " onto connections"
         conn_info.append(address)
         clientsocket.setblocking(0)
         connections.append(clientsocket)
         print len(connections)
     else:
         print "reader"
         try:  #i needed this try block only for google chrome! wierd.
             data = socko.recv(1024)  #1024 potential problem causer
         except socket.error, msg:
             closesocket(socko)
             break
         print data
         if not data:
             print "no data"
             closesocket(socko)
             break
         try:
             handle_data(data, socko, to_read, to_write, to_error)
         except socket.error, msg:
             closesocket(socko)
 if counter % cycles_per_tick == 0:
     print connections
     tick.tick(to_read, to_write, to_error, scope)
 for socko in to_error:
     print socko + " had an error"