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))
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