Ejemplo n.º 1
0
    def train_epoch(self, epoch):
        if self.train_problems_loader is None:
            self.train_problems_loader = init_problems_loader(
                self.opts.train_dir)

        epoch_start = time.clock()

        epoch_train_cost = 0.0
        epoch_train_mat = ConfusionMatrix()

        train_problems, train_filename = self.train_problems_loader.get_next()
        for problem in train_problems:
            d = self.build_feed_dict(problem)
            _, logits, cost = self.sess.run(
                [self.apply_gradients, self.logits, self.cost], feed_dict=d)
            epoch_train_cost += cost
            epoch_train_mat.update(problem.is_sat, logits > 0)

        epoch_train_cost /= len(train_problems)
        epoch_train_mat = epoch_train_mat.get_percentages()
        epoch_end = time.clock()

        learning_rate = self.sess.run(self.learning_rate)
        self.save(epoch)

        return (train_filename, epoch_train_cost, epoch_train_mat,
                learning_rate, epoch_end - epoch_start)
Ejemplo n.º 2
0
    def test(self, test_data_dir):
        test_problems_loader = init_problems_loader(test_data_dir)
        results = []

        while test_problems_loader.has_next():
            test_problems, test_filename = test_problems_loader.get_next()

            epoch_test_cost = 0.0
            epoch_test_mat = ConfusionMatrix()

            for problem in test_problems:
                d = self.build_feed_dict(problem)
                logits, cost = self.sess.run([self.logits, self.cost], feed_dict=d)
                epoch_test_cost += cost
                epoch_test_mat.update(problem.is_sat, logits > 0)

            epoch_test_cost /= len(test_problems)
            epoch_test_mat = epoch_test_mat.get_percentages()

            results.append((test_filename, epoch_test_cost, epoch_test_mat))

        return results
Ejemplo n.º 3
0
    def train_epoch(self, epoch):
        if self.train_problems_loader is None:
            self.train_problems_loader = init_problems_loader(self.opts.train_dir)
        epoch_start = time.clock()
        epoch_train_cost = 0.0
        epoch_train_mat = ConfusionMatrix()
        train_problems, train_filename = self.train_problems_loader.get_next()

        for problem in train_problems:
            d = self.build_feed_dict(problem)
            self.batchnum = problem.n_vars//len(problem.is_sat)
            acc,feature_map_out, _, logits, cost, image, issat, XX = self.sess.run(
                 [self.accuracy, self.all_votes, self.apply_gradients, self.logits, self.cost, self.image, self.is_sat, self.merged], feed_dict=d)
            epoch_train_cost += cost
            epoch_train_mat.update(problem.is_sat, logits > 0)
            # print(acc)
        epoch_train_cost /= len(train_problems)
        epoch_train_mat = epoch_train_mat.get_percentages()
        epoch_end = time.clock()
        learning_rate = self.sess.run(self.learning_rate)
        self.save(epoch)
        self.train_writer.add_summary(XX, epoch)
        return (train_filename, epoch_train_cost, epoch_train_mat, learning_rate, epoch_end - epoch_start)