Exemplo n.º 1
0
#!/usr/bin/python2
from dlgo.gtp import GTPFrontend
from dlgo.agent.predict import load_prediction_agent
from dlgo.agent import termination
import h5py

model_file = h5py.File("agents/betago.hdf5", "r")
agent = load_prediction_agent(model_file)
strategy = termination.get("opponent_passes")
termination_agent = termination.TerminationAgent(agent, strategy)

frontend = GTPFrontend(termination_agent)
frontend.run()
Exemplo n.º 2
0
encoder = SevenPlaneEncoder((go_board_rows, go_board_cols))
processor = GoDataProcessor(encoder=encoder.name())

X, y = processor.load_go_data(num_samples=100)
# end::e2e_processor[]

# tag::e2e_model[]
input_shape = (encoder.num_planes, go_board_rows, go_board_cols)
model = Sequential()
network_layers = large.layers(input_shape)
for layer in network_layers:
    model.add(layer)
model.add(Dense(nb_classes, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy'])

model.fit(X, y, batch_size=128, epochs=20, verbose=1)
# end::e2e_model[]

# tag::e2e_agent[]
deep_learning_bot = DeepLearningAgent(model, encoder)
deep_learning_bot.serialize("../agents/deep_bot.h5")
# end::e2e_agent[]

# tag::e2e_load_agent[]
model_file = h5py.File("../agents/deep_bot.h5", "r")
bot_from_file = load_prediction_agent(model_file)

web_app = get_web_app({'predict': bot_from_file})
web_app.run()
# end::e2e_load_agent[]
Exemplo n.º 3
0
            sgf_move = self.sgf.coordinates(move)
        self.sgf.append(";{}[{}]\n".format(our_letter, sgf_move))
# end::play_local_our[]

# tag::play_local_their[]
    def play_their_move(self):
        their_name = self.their_color.name
        their_letter = their_name[0].upper()

        pos = self.command_and_response("genmove {}\n".format(their_name))
        if pos.lower() == 'resign':
            self.game_state = self.game_state.apply_move(Move.resign())
            self._stopped = True
        elif pos.lower() == 'pass':
            self.game_state = self.game_state.apply_move(Move.pass_turn())
            self.sgf.append(";{}[]\n".format(their_letter))
            if self.game_state.last_move.is_pass:
                self._stopped = True
        else:
            move = gtp_position_to_coords(pos)
            self.game_state = self.game_state.apply_move(move)
            self.sgf.append(";{}[{}]\n".format(their_letter, self.sgf.coordinates(move)))
# end::play_local_their[]


if __name__ == "__main__":
    bot = load_prediction_agent(h5py.File("agents/deep_bot.h5", "r"))
    gnu_go = LocalGtpBot(go_bot=bot, termination=PassWhenOpponentPasses(),
                         handicap=0, opponent='gnugo', )
    gnu_go.run()
Exemplo n.º 4
0
import argparse

parser = argparse.ArgumentParser()
parser.add_argument(
    '--bot-file',
    help="Path to the h5 file that has the bot. i.e. ./agents/deep_bot.h5",
    required=True)
parser.add_argument(
    '--print-probs',
    help="If set, print probabilities of each move during the bot's turn",
    action="store_true")

args = parser.parse_args()

agent1 = h5py.File(args.bot_file, "r")
bot_1_from_file = load_prediction_agent(agent1, print_probs=args.print_probs)


def main():
    while True:
        board_size = 19
        try:
            board_size = int(board_size)
        except ValueError:
            print('Invalid Entry')
            continue
        if board_size in range(5, 20):
            break
        else:
            print('Invalid Entry')
    game = goboard.GameState.new_game(board_size)
Exemplo n.º 5
0
        their_name = self.their_color.name
        their_letter = their_name[0].upper()

        pos = self.command_and_response("genmove {}\n".format(their_name))
        if pos.lower() == 'resign':
            self.game_state = self.game_state.apply_move(Move.resign())
            self._stopped = True
        elif pos.lower() == 'pass':
            self.game_state = self.game_state.apply_move(Move.pass_turn())
            self.sgf.append(";{}[]\n".format(their_letter))
            if self.game_state.last_move.is_pass:
                self._stopped = True
        else:
            move = gtp_position_to_coords(pos)
            self.game_state = self.game_state.apply_move(move)
            self.sgf.append(";{}[{}]\n".format(their_letter,
                                               self.sgf.coordinates(move)))


# end::play_local_their[]

if __name__ == "__main__":
    bot = load_prediction_agent(h5py.File("../../agents/betago.hdf5", "r"))
    gnu_go = LocalGtpBot(
        go_bot=bot,
        termination=PassWhenOpponentPasses(),
        handicap=0,
        opponent='pachi',
    )
    gnu_go.run()
Exemplo n.º 6
0
        pos = self.command_and_response("genmove {}\n".format(their_name))
        if pos.lower() == 'resign':
            self.game_state = self.game_state.apply_move(Move.resign())
            self._stopped = True
        elif pos.lower() == 'pass':
            self.game_state = self.game_state.apply_move(Move.pass_turn())
            self.sgf.append(";{}[]\n".format(their_letter))
            if self.game_state.last_move.is_pass:
                self._stopped = True
        else:
            move = gtp_position_to_coords(pos)
            self.game_state = self.game_state.apply_move(move)
            self.sgf.append(";{}[{}]\n".format(their_letter,
                                               self.sgf.coordinates(move)))


# end::play_local_their[]

if __name__ == "__main__":
    bot = load_prediction_agent(
        h5py.File(
            "/Users/andrewnomura/PycharmProjects/GammaGo_3/agents/deep_bot.h5",
            "r"))
    gnu_go = LocalGtpBot(
        go_bot=bot,
        termination=PassWhenOpponentPasses(),
        handicap=0,
        opponent='gnugo',
    )
    gnu_go.run()
Exemplo n.º 7
0
import numpy as np

from dlgo import rl
from dlgo import scoring
from dlgo import goboard_fast as goboard
from dlgo.goboard_fast import Move
from dlgo.gotypes import Player, Point
from dlgo.utils import print_board, print_move

from dlgo import agent
from dlgo.agent.predict import DeepLearningAgent, load_prediction_agent
from dlgo.agent import load_prediction_agent, load_policy_agent, AlphaGoMCTS
from dlgo.rl import load_value_agent

# Load policy agent and value agent
fast_policy = load_prediction_agent(
    h5py.File('models/AlphaGo/alphago_policyv0-0-0.h5', 'r'))
strong_policy = load_policy_agent(
    h5py.File('models/AlphaGo/alphago_policyv0-0-0.h5', 'r'))
value = load_value_agent(
    h5py.File('models/AlphaGo/alphago_valuev1-0-1.h5', 'r'))

# Create AlphaGo MCTS agent based on the policy agent and the value agent
alphago = AlphaGoMCTS(strong_policy,
                      fast_policy,
                      value,
                      depth=10,
                      rollout_limit=50,
                      num_simulations=100)

# Test duration for selecting a move
game_state = goboard.GameState.new_game(19)