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