Example #1
0
    def __init__(self, *args, **kwargs):
        super(A3CSpliterEnv, self).__init__(*args, **kwargs)

        random.seed(time.time())

        self.game_no = 0

        self.out_classes = 9

        self.a3c_model = ActorCritic(5, self.out_classes, 64)
        self.optimizer = optim.SGD(self.a3c_model.parameters(), lr=0.1)

        self.reset()

        self.gamma = 0.99
        self.tau = 1.0
        self.entropy_coef = 0.01

        self.batch_size = 256
        self.buffer_size = 1000
        self.i = 0

        self.nll_loss_fn = nn.NLLLoss()

        self.sw = SpliterWarpper(5, 128)
Example #2
0
    def __init__(self, *args, **kwargs):
        super(A3CSpliterEnv, self).__init__(*args, **kwargs)

        random.seed(time.time())

        self.game_no = 0

        self.out_classes = 9

        self.a3c_model = ActorCritic(5, self.out_classes, 128)
        self.a3c_model.load_state_dict(
            torch.load('F:\\Dota2BotStepByStep\\tmp\\model_3023_24392'))
        self.optimizer = optim.SGD(self.a3c_model.parameters(), lr=0.01)

        self.reset()

        self.gamma = 0.99
        self.tau = 1.0
        self.entropy_coef = 0.01

        self.batch_size = 256
        self.buffer_size = 1000
        self.i = 0

        self.nll_loss_fn = nn.NLLLoss()

        self.sw = SpliterWarpper(5, 128)
Example #3
0
    def __init__(self, *args, **kwargs):
        super(DoubleA3CPPOEnv, self).__init__(*args, **kwargs)

        random.seed(os.getpid())
        torch.random.manual_seed(os.getpid())

        self.game_no = 0

        self.out_classes = 9

        self.a3c_model = ActorCritic(5, self.out_classes, 64)
        self.optimizer = optim.SGD(self.a3c_model.parameters(), lr=0.1)

        self.reset()

        self.gamma = 0.99
        self.tau = 1.0
        self.entropy_coef = 0.01
        self.epsilon = 0.2

        self.batch_size = 256
        self.buffer_size = 1000
        self.i = 0

        self.update_steps = 3

        self.nll_loss_fn = nn.NLLLoss()

        self.writer = SummaryWriter(comment='_%d' % os.getpid())

        self.rank = -1
Example #4
0
        v.env = env
        v.env.canvas = v.canvas
        v.visualize()

    gen = env.run(True)
    gen.send(None)
    while True:
        try:
            gen.send((None, ))
        except StopIteration:
            #barrier.wait()
            torch.save(env.a3c_model.state_dict(),
                       "./tmp/model_%d_%d" % (env.game_no, os.getpid()))
            #barrier.wait()
            gen = env.run(True)
            gen.send(None)


if __name__ == '__main__':
    model = ActorCritic(5, 9, 64)
    import torch.nn.init as weight_init
    for name, param in model.named_parameters():
        weight_init.normal(param)
    model.share_memory()
    barrier = mp.Barrier(2)
    parallel.start_parallel(DoubleA3CPPOEnv,
                            model,
                            np=2,
                            func=test_without_gui,
                            args=barrier)
Example #5
0
    env = clazz()
    env.set_model(model)
    env.set_rank(rank)

    gen = env.run(True)
    gen.send(None)
    while True:
        try:
            gen.send((None, ))
        except StopIteration:
            if rank == 0:
                torch.save(env.a3c_model.state_dict(),
                           "./tmp/model_%d_%d" % (env.game_no, os.getpid()))
            gen = env.run(True)
            gen.send(None)


if __name__ == '__main__':
    model = ActorCritic(5, 9, num_hidden)
    import torch.nn.init as weight_init
    for name, param in model.named_parameters():
        weight_init.normal(param)
    model.share_memory()
    #test(model)

    parallel.start_parallel(ParallelA3CPPOEnv,
                            model,
                            np=os.cpu_count(),
                            func=test_without_gui,
                            args=None)