Beispiel #1
0
def TransformData(data,
                  bits=12,
                  conv=False,
                  startingplayer=False,
                  startingplayerbits=False):
    transformed = []
    #print("length:",len(data))
    #for i in range(len(data[0])):
    for entry in data:
        #print(i)
        bitboard = entry[0]
        if conv:
            if not startingplayer:
                bitboard = TL.FENtoBits(bitboard,
                                        numberOfBits=bits,
                                        startingplayerbits=startingplayer)
            else:
                bitboard = TL.FENtoBitsWStartingPlayer(bitboard,
                                                       numberOfBits=bits)
            bitboard = np.array(bitboard).reshape((8, 8, bits))
        else:
            if not startingplayer:
                bitboard = TL.FENtoBits(bitboard,
                                        numberOfBits=bits,
                                        startingplayerbits=startingplayer)
            else:
                bitboard = TL.FENtoBitsWStartingPlayer(bitboard,
                                                       numberOfBits=bits)
            bitboard = np.array(bitboard)

        transformed.append([bitboard, entry[1]])
    return transformed
Beispiel #2
0
    def Predict(self, inp):
        reshaped = TL.FENtoBitsWStartingPlayer(inp, self.bits)
        player = reshaped[len(reshaped) - 1]
        board = reshaped[:len(reshaped) - 1]
        newBoard = np.reshape(board, (1, 8, 8, self.bits))
        #print(len(newBoard))

        if player == 1:
            pred = self.Machine[0].Pred(newBoard)[0]
            score = self.Machine[0].Score(newBoard)
            return [pred, score]

        else:
            pred = self.Machine[1].Pred(newBoard)[0]
            score = self.Machine[1].Score(newBoard)
            return [pred, score]
Beispiel #3
0
    def DataForm(self, data):
        black = []
        white = []

        #train = data[0]
        #test = data[1]

        for entry in data:
            #entry = train[0][i]
            Y = entry[1]
            reshaped = TL.FENtoBitsWStartingPlayer(entry[0], self.bits)
            #print("Train",entry)
            player = reshaped[len(reshaped) - 1]
            board = reshaped[:len(reshaped) - 1]
            newBoard = np.reshape(board, (8, 8, self.bits))

            if player == 1:
                white.append([newBoard, Y])
            else:
                black.append([newBoard, Y])

        return (white, black)
Beispiel #4
0
    def MassPredict(self, inp):
        black = []
        blackIndex = []

        white = []
        whiteIndex = []

        #train = data[0]
        #test = data[1]

        for entry in range(len(inp)):
            #entry = train[0][i]
            reshaped = TL.FENtoBitsWStartingPlayer(data[entry], self.bits)
            #print("Train",entry)
            player = reshaped[len(reshaped) - 1]
            board = reshaped[:len(reshaped) - 1]
            newBoard = np.reshape(board, (8, 8, self.bits))

            if player == 1:
                white.append(newBoard)
                whiteIndex.append(entry)
            else:
                black.append(newBoard)
                blackIndex.append(entry)

        res = self.Machine[0].MassScore(white) + self.Machine[1].MassScore(
            black)
        indecies = whiteIndex + blackIndex

        def sorter(inp1):
            return inp1[1]

        sorting = []
        for i in range(len(res)):
            sorting.append((res[i], indecies[i]))

        sorting.sort(key=sorter)
        return [i[0] for i in sorting]