Пример #1
0
 def train(self, data, labels, test_data, test_labels, sess, epoches):
     best_val = 0.0
     for e in range(epoches):
         Loss = 0
         results = []
         batches = generator(zip(data, labels), self.batch_size)
         for step, (sent_a, sent_b, label) in enumerate(batches):
             loss, _, res = sess.run(
                 [self.loss, self.train_op, self.pred],
                 feed_dict={
                     self.input_a: np.array(sent_a),
                     self.input_b: np.array(sent_b),
                     self.labels: np.array(label),
                     self.dropout: 0.8
                 })
             Loss += loss
             for r in res:
                 results.append(r)
             print('epoch: ' + str(e) + ' step: ' + str(step) + ' loss: ' +
                   str(loss))
             if step % 100 == 0:
                 val = self.test(test_data, test_labels, sess)
                 if val > best_val:
                     best_val = val
                     print('Higher score, ' + str(val))
Пример #2
0
 def test(self, data, labels, sess):
     results = []
     batches = generator(zip(data, labels), self.batch_size)
     for step, (sent, label) in enumerate(batches):
         res = sess.run(self.pred,
                        feed_dict={
                            self.inputs: np.array(sent),
                            self.labels: np.array(label),
                            self.dropout_: 0
                        })
         for r in res:
             results.append(r)
     res = self.acc(results, labels)
     print('test_acc: ' + str(res))
     return res