X = X.reshape((entries, 19, 38)) # Answers Y = data[:, -1] split = 0.8 z = math.floor(len(data) * 0.8) X_train = X[:z] Y_train = Y[:z] X_test = X[z:] Y_test = Y[z:] epochs = 20 tm = MultiClassConvolutionalTsetlinMachine2D(10000, 7500, 8.0, (19, 19), weighted_clauses=True) info = "; ".join(f""" Clauses: {tm.number_of_clauses} T: {tm.T} s: {tm.s} Epochs: {epochs} Moves: 250 Games: {data.shape[0]} """.strip().split("\n")) total_acc = [] print(info) print("Starting training")
#import sys #sys.exit(1) #------------------------------------------------------------ from pyTsetlinMachine.tm import MultiClassConvolutionalTsetlinMachine2D print("Setting Up Machine") clauses = int(variables["Connect4"]["Clause"]) T = variables["Connect4"]["T"] s = variables["Connect4"]["S"] epochs = int(variables["Connect4"]["epochs"]) ctm = MultiClassConvolutionalTsetlinMachine2D(1000, 50, 14.617627461915859, (4, 4), weighted_clauses=True, boost_true_positive_feedback=0) ctm.fit(TrainX, TrainY, epochs=15) print("Accuracy:", 100 * (ctm.predict(TestX) == TestY).mean()) def GetOutput(tm, tm_class, clause): output = [] for i in range(84 * 2): outputbit = tm.ta_action(tm_class, clause, i) output.append(outputbit) return output