Exemple #1
0
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
Exemple #2
0
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
Exemple #5
0
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