Ejemplo n.º 1
0
 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()
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
 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()
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
        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,