예제 #1
0
 def train(self, session, data):
     # data separate
     self.left = data_split(X=data[0], train_rate=0.8)
     self.right = data_split(X=data[1], train_rate=0.8)
     self.label = data_split(X=data[2], train_rate=0.8)
     print('[Step2 Data] Train samples:{0}, valid samples:{1}'.format(
         len(self.left[0]), len(self.left[1])))
     # train
     for iters in range(self.max_iterations):
         batch_x_left = get_next_batch(self.left[0], None, iters,
                                       self.batch_size)
         batch_x_right = get_next_batch(self.right[0], None, iters,
                                        self.batch_size)
         batch_y = get_next_batch(self.label[0], None, iters,
                                  self.batch_size)
         loss, _ = session.run([self.loss_func, self.optimizer],
                               feed_dict={
                                   self.XL: batch_x_left,
                                   self.XR: batch_x_right,
                                   self.Y: batch_y
                               })
         if iters % self.display_iters == 0:
             print('[Step2 Train] RegNet Iters:{0}, loss:{1}'.format(
                 iters, loss))
         if iters % self.test_iters == 0:
             self.val_internal(session)
예제 #2
0
 def val_internal(self, session):
     max_batches = len(self.data[2]) // self.test_batch
     rights = 0.0
     for iters in range(max_batches):
         batch_x, batch_y = get_next_batch(self.data[2], self.data[3], iters, self.test_batch)
         sums = session.run(self.correct,feed_dict={self.X:batch_x,self.Y:batch_y})
         rights += sums
     print '[Step1 Valid] EyeNet val accuracy:{0}'.format(rights/len(self.data[2]))   
예제 #3
0
 def val_internal(self, session):
     max_batches = len(self.left[1]) // self.test_batch
     rights = 0.0
     for iters in range(max_batches):
         batch_x_left = get_next_batch(self.left[1], None, iters,
                                       self.test_batch)
         batch_x_right = get_next_batch(self.right[1], None, iters,
                                        self.test_batch)
         batch_y = get_next_batch(self.label[1], None, iters,
                                  self.test_batch)
         sums = session.run(self.correct,
                            feed_dict={
                                self.XL: batch_x_left,
                                self.XR: batch_x_right,
                                self.Y: batch_y
                            })
         rights += sums
     print('[Step2 Valid] RegNet val accuracy:{0}'.format(
         rights / len(self.left[1])))
예제 #4
0
 def train(self, session, data):
     # prepare data
     self.data = data_split(X=data[0],Y=data[1],train_rate=0.8)
     print '[Step1 Data] Train samples:{0}, valid samples:{1}'.format(len(self.data[0]), len(self.data[3]))
     # train step by step
     for iters in range(self.max_iterations):
         batch_x, batch_y = get_next_batch(self.data[0], self.data[1], iters, self.batch_size)
         loss, _ = session.run([self.loss_func, self.optimizer],feed_dict={self.X:batch_x, self.Y:batch_y})
         if iters % self.display_iters == 0:
             print '[Step1 Train] EyeNet Iters:{0}, loss:{1}'.format(iters,loss)
         if iters % self.test_iters == 0:
             self.val_internal(session)