示例#1
0
    def get_groundtruth(self):
        feature_batch = []
        targets_batch = []
        board_positions = self.get_board_position()
        shuffle(board_positions)
        print("done shuffling")
        print("generating evaluations on {} board positions...".format(
            len(board_positions)))
        # stockfish = Stockfish()

        for index, board_position in enumerate(board_positions):
            print(index)
            stockfish = Stockfish()
            feature_batch.append(board_to_feature(board_position))
            targets_batch.append(stockfish.stockfish_eval(board_position, 10))
            stockfish.kill_me()
        feature_arr = np.asarray(feature_batch)
        targets_arr = np.asarray(targets_batch)
        np.save('features.txt', feature_arr)
        np.save('values.txt', targets_arr)
def pretrain(model):
    feature_batch = []
    targets_batch = []
    board_positions = get_board_position()
    shuffle(board_positions)
    print("Pretraining on {} board positions...".format(len(board_positions)))
    stockfish = Stockfish()

    for batch in range(Config.PRETRAIN_EPOCHS):
        for index, board_position in enumerate(board_positions):
            if (index + 1) % Config.minibatch_size != 0:
                feature_batch.append(board_to_feature(board_position))
                targets_batch.append(
                    stockfish.stockfish_eval(board_position, 10))
            else:
                feature_batch = torch.FloatTensor(feature_batch)
                targets_batch = Variable(torch.FloatTensor(targets_batch))
                do_backprop(feature_batch, targets_batch, model)
                feature_batch = []
                targets_batch = []
        print("Completed batch {} of {}".format(batch, Config.PRETRAIN_EPOCHS))