Example #1
0
    def convert_to_training_data(data):
        """

        :param data: format is SelfPlayWorker.buffer
        :return:
        """
        state_list = []
        policy_list = []
        z_list = []
        for state, policy, z in data:
            env = ChessEnv().update(state)

            black_ary, white_ary = env.black_and_white_plane()
            state = [black_ary, white_ary] if env.board.turn == chess.BLACK else [white_ary, black_ary]

            state_list.append(state)
            policy_list.append(policy)
            z_list.append(z)

        return np.array(state_list), np.array(policy_list), np.array(z_list)
    def convert_to_training_data(data):
        """

        :param data: format is SelfPlayWorker.buffer
        :return:
        """
        state_list = []
        policy_list = []
        z_list = []
        aux_move_number = 1
        movements = []
        for state, policy, z in data:
            move_number = int(
                (ChessEnv().update(state,
                                   movements)).board.fen().split(" ")[5])
            if aux_move_number < move_number:
                if len(movements) > 8:
                    movements.pop(0)
                movements.append(env.observation)
                aux_move_number = move_number
            else:
                aux_move_number = 1
                movements = []

            env = ChessEnv().update(state, movements)

            black_ary, white_ary, current_player, move_number = env.black_and_white_plane(
            )
            state = [black_ary, white_ary
                     ] if env.board.fen().split(" ")[1] == 'b' else [
                         white_ary, black_ary
                     ]
            state = np.reshape(np.reshape(np.array(state), (18, 6, 8, 8)),
                               (108, 8, 8))
            state = np.vstack((state, np.reshape(current_player, (1, 8, 8)),
                               np.reshape(move_number, (1, 8, 8))))
            state_list.append(state)
            policy_list.append(policy)
            z_list.append(z)

        return np.array(state_list), np.array(policy_list), np.array(z_list)