def __init__(self): self.someoneWin = False self.humanChessed = False self.IsStart = False self.player = 0 self.playmethod = 0 self.whi_chessed = [] self.bla_chessed = [] self.board = self.init_board() self.window = Tk() self.var = IntVar() self.var.set(0) self.var1 = IntVar() self.var1.set(0) self.window.title("myGoBang") self.window.geometry("600x470+80+80") self.window.resizable(0, 0) self.can = Canvas(self.window, bg="#EEE8AC", width=470, height=470) self.draw_Board() self.can.grid(row=0, column=0) self.net_board = self.get_net_board() self.robot = Robot(self.board) self.sgf = SGFflie() self.cnn = myCNN() self.cnn.restore_save()
def __init__(self): """ 初始化: someoneWin:标识是否有人赢了 humanChessed:人类玩家是否下了 IsStart:是否开始游戏了 player:玩家是哪一方 hardLevel:基本规则的强度 CnnMode:神经网络是否被基本规则限制 bla_start_pos:黑棋开局时下在正中间的位置 bla_chessed:保存黑棋已经下过的棋子 whi_chessed:保存白棋已经下过的棋子 board:棋盘 window:窗口 var:用于标记选择玩家颜色的一个变量 var1:用于标记选择神经网络模式的一个变量 var2:用于标记选择基本规则强度的一个变量 can:画布,用于绘出棋盘 net_board:棋盘的点信息 robot:机器人 sgf:处理棋谱 cnn:cnn神经网络 """ self.someoneWin = False self.humanChessed = False self.IsStart = False self.player = 0 self.playmethod = 0 self.hardLevel = 0 self.CnnMode = 0 self.bla_start_pos = [235, 235] self.whi_chessed = [] self.bla_chessed = [] self.board = self.init_board() self.window = Tk() self.var = IntVar() self.var.set(0) self.var1 = IntVar() self.var1.set(0) self.var2 = IntVar() self.var2.set(0) self.window.title("Dept5 AI GoBang") self.window.geometry("675x500+80+80") self.window.resizable(0, 0) self.can = Canvas(self.window, bg="#C1FFC1", width=470, height=470) self.draw_board() self.can.grid(row=0, column=0) self.net_board = self.get_net_board() self.robot = Robot(self.board) self.sgf = SGFflie() self.cnn = myCNN() self.cnn.restore_save() sys.setrecursionlimit(15 * 15)
def __init__(self): """ 初始化: someoneWin:标识是否有人赢了 humanChessed:人类玩家是否下了 IsStart:是否开始游戏了 player:玩家是哪一方 playmethod:模式,和robot下棋,还是和ai下棋 bla_start_pos:黑棋开局时下在正中间的位置 bla_chessed:保存黑棋已经下过的棋子 whi_chessed:保存白棋已经下过的棋子 board:棋盘 window:窗口 var:用于标记选择玩家颜色的一个变量 var1:用于标记选择robot或者ai的一个变量 can:画布,用于绘出棋盘 net_board:棋盘的点信息 robot:机器人 sgf:处理棋谱 cnn:cnnc神经网络 """ self.someoneWin = False self.humanChessed = False self.IsStart = False self.player = 0 self.playmethod = 0 self.bla_start_pos = [235, 235] self.whi_chessed = [] self.bla_chessed = [] self.board = self.init_board() self.window = Tk() self.var = IntVar() self.var.set(0) self.var1 = IntVar() self.var1.set(0) self.window.title("myGoBang") self.window.geometry("600x470+80+80") self.window.resizable(0, 0) self.can = Canvas(self.window, bg="#EEE8AC", width=470, height=470) self.draw_board() self.can.grid(row=0, column=0) self.net_board = self.get_net_board() self.robot = Robot(self.board) self.sgf = SGFflie() self.cnn = myCNN() self.cnn.restore_save()
def reTrain(self): """再训练方法""" self.cnn.sess.close() sgf = SGFflie() _cnn = myCNN() path = sgf.allFileFromDir('sgf\\') _x, _y = sgf.createTraindataFromqipu(path[0]) step = 0 _path = path[:2000] for filepath in path: x, y = sgf.createTraindataFromqipu(filepath) for i in range(1): _cnn.sess.run(_cnn.train_step, feed_dict={ _cnn.x: x, _cnn.y: y, _cnn.keep_prob: 0.5 }) print(step) step += 1 _cnn.restore_save(method=0) _cnn.restore_save(method=1) print( _cnn.sess.run(tf.argmax(_cnn.y_conv, 1), feed_dict={ _cnn.x: _x[0:10], _cnn.keep_prob: 1.0 })) self.cnn = _cnn self.cnn.restore_save() self.resetButton() label = Label(self.window, text="训练完成!", background='#EEEEEE', font=("宋体", 15, "bold")) label.place(relx=0, rely=0, x=490, y=15)
validate_data.shape[0], num_channel, int(validate_data.shape[1] / num_channel), validate_data.shape[2]) test_data = test_data.reshape(test_data.shape[0], num_channel, int(test_data.shape[1] / num_channel), test_data.shape[2]) # =============================================== # Rearange tensor"s dimension training_data = np.moveaxis(training_data, 1, -1) validate_data = np.moveaxis(validate_data, 1, -1) test_data = np.moveaxis(test_data, 1, -1) # =============================================== # Train CNN training_history = myCNN(training_data, training_label_1, training_label_2, validate_data, validate_label_2, classes, CNN_architecture_package, CNN_training_package, CNN_callbacks_package) # =============================================== # Load Trained CNN fold_best_CNN = load_model(saved_model_name) # =============================================== # save the plot of validation loss plt.plot(training_history.history[callbacks_monitor]) plt.savefig(val_loss_plot_name + str(fold_index + 1) + ".png") plt.clf() # =============================================== # First we release the results directly from the CNN fold_result_package = evaluateCNN(fold_best_CNN, test_combo, test_data,