def AsyncAgainst(nnet, game, args, iter_num): os.environ["CUDA_VISIBLE_DEVICES"] = '3' minimax = minimaxAI(game,depth=7) local_args = dotdict({'numMCTSSims': 200, 'cpuct': 1.0}) mcts = MCTS(game, nnet, local_args, eval=True) arena = Arena(lambda x: np.argmax(mcts.getActionProb(x, temp=0)), minimax.get_move, game) arena.displayBar = False net_win, minimax_win, draws = arena.playGames(2) return net_win, minimax_win, draws
def Async_Play(game, args, iter_num, bar): bar.suffix = "iter:{i}/{x} | Total: {total:} | ETA: {eta:}".format( i=iter_num + 1, x=args.numPlayGames, total=bar.elapsed_td, eta=bar.eta_td) bar.next() # set gpu if (args.multiGPU): if (iter_num % 2 == 0): os.environ["CUDA_VISIBLE_DEVICES"] = "0" else: os.environ["CUDA_VISIBLE_DEVICES"] = "1" else: os.environ["CUDA_VISIBLE_DEVICES"] = args.setGPU # set gpu growth config = tf.ConfigProto() config.gpu_options.allow_growth = True sess = tf.Session(config=config) # create NN model1 = NNet(game) model2 = NNet(game) # try load weight try: model1.load_checkpoint(folder=args.model1Folder, filename=args.model1FileName) except: print("load model1 fail") pass try: model2.load_checkpoint(folder=args.model2Folder, filename=args.model2FileName) except: print("load model2 fail") pass # create MCTS mcts1 = MCTS(game, model1, args) mcts2 = MCTS(game, model2, args) # each process play 2 games arena = Arena(lambda x: np.argmax(mcts1.getActionProb(x, temp=0)), lambda x: np.argmax(mcts2.getActionProb(x, temp=0)), game) arena.displayBar = False oneWon, twoWon, draws = arena.playGames(2) return oneWon, twoWon, draws
def AsyncAgainst(game, args, iter_num, bar): bar.suffix = "iter:{i}/{x} | Total: {total:} | ETA: {eta:}".format( i=iter_num + 1, x=args.numAgainstPlayProcess, total=bar.elapsed_td, eta=bar.eta_td) bar.next() #set gpu if (args.multiGPU): if (iter_num % 2 == 0): os.environ["CUDA_VISIBLE_DEVICES"] = "0" else: os.environ["CUDA_VISIBLE_DEVICES"] = "1" else: os.environ["CUDA_VISIBLE_DEVICES"] = args.setGPU #set gpu memory grow config = tf.ConfigProto() config.gpu_options.allow_growth = True sess = tf.Session(config=config) #create nn and load nnet = nn(game) pnet = nn(game) try: nnet.load_checkpoint(folder=args.checkpoint, filename='train.pth.tar') except: print("load train model fail") pass try: pnet.load_checkpoint(folder=args.checkpoint, filename='best.pth.tar') except: print("load old model fail") pass pmcts = MCTS(game, pnet, args) nmcts = MCTS(game, nnet, args) arena = Arena(lambda x: np.argmax(pmcts.getActionProb(x, temp=0)), lambda x: np.argmax(nmcts.getActionProb(x, temp=0)), game) arena.displayBar = True # each against process play the number of numPerProcessAgainst games. pwins, nwins, draws = arena.playGames(args.numPerProcessAgainst) return pwins, nwins, draws
def AsyncAgainst(nnet, game, args, gameth): logging.debug("play self test game " + str(gameth)) os.environ["CUDA_VISIBLE_DEVICES"] = args.setGPU # create nn and load minimax = minimaxAI(game) local_args = dotdict({'numMCTSSims': 100, 'cpuct': 1.0}) # local_args.numMCTSSims = 100 # local_args.cpuct = 1 mcts = MCTS(game, nnet, local_args, eval=True) arena = Arena(lambda x: np.argmax(mcts.getActionProb(x, temp=0)), minimax.get_move, game) arena.displayBar = False net_win, minimax_win, draws = arena.playGames(2) return net_win, minimax_win, draws
def async_against(game, args, iter_num): import tensorflow as tf #bar.suffix = "iter:{i}/{x} | Total: {total:} | ETA: {eta:}".format(i=iter_num + 1, x=args.arenaCompare, # total=bar.elapsed_td, eta=bar.eta_td) #bar.next() # set gpu if args.multiGPU: if iter_num % 2 == 0: os.environ["CUDA_VISIBLE_DEVICES"] = "0" else: os.environ["CUDA_VISIBLE_DEVICES"] = "1" else: os.environ["CUDA_VISIBLE_DEVICES"] = args.setGPU # set gpu memory grow config = tf.ConfigProto() config.gpu_options.allow_growth = True _ = tf.Session(config=config) # create nn and load nnet = nn(game) pnet = nn(game) try: nnet.load_checkpoint(folder=args.checkpoint, filename='train.pth.tar') except: print("load train model fail") pass try: pnet.load_checkpoint(folder=args.checkpoint, filename='best.pth.tar') except: print("load old model fail") pass pmcts = MCTS(game, pnet, args) nmcts = MCTS(game, nnet, args) arena = Arena(lambda x: np.argmax(pmcts.get_action_prob(x, temp=0)), lambda x: np.argmax(nmcts.get_action_prob(x, temp=0)), game) arena.displayBar = False pwins, nwins, draws = arena.playGames(2) return pwins, nwins, draws