-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain_eval.py
64 lines (49 loc) · 1.42 KB
/
main_eval.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import numpy as np
from collections import namedtuple
import logging
import sys
import gym
from gym import wrappers
import torch
import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F
from replay_memory import ExpReplay
from dqn_model import DQN
from dqn_learn import Optimizer, dqn_inference
from dqn_eval import dqn_eval
from util import Scheduler
BATCH_SIZE = 32
REPLAY_MEMO_SIZE = 100000
TARGET_UPDATE_FREQ = 10000
DISCOUNT_FACTOR = 0.99
LEARNING_RATE = 0.00025
INITIAL_EXPLORE = 1
FINAL_EXPLORE = 0.1
FRAMES_PER_EPOCH = 250000
EXPLORATION_FRAME = 1000000
REPLAY_START_SIZE = 50000
RMSPROP_ALPHA = 0.95
RMSPROP_EPS = 0.01
NUM_FRAMES_PER_STATE = 4
# REPLAY_START_SIZE = 500
# EXPLORATION_FRAME=10000
# FRAMES_PER_EPOCH = 10000
def main():
env = gym.make('SpaceInvaders-v0').unwrapped
scheduler = Scheduler(EXPLORATION_FRAME, INITIAL_EXPLORE, FINAL_EXPLORE)
optimizer = Optimizer(type=optim.RMSprop, kwargs=dict(lr=LEARNING_RATE, alpha=RMSPROP_ALPHA, eps=RMSPROP_EPS))
dqn_eval(env, scheduler, optimizer_constructor=optimizer,
batch_size = BATCH_SIZE,
rp_start=REPLAY_START_SIZE,
rp_size=REPLAY_MEMO_SIZE,
exp_frame=EXPLORATION_FRAME,
exp_initial=INITIAL_EXPLORE,
exp_final=FINAL_EXPLORE,
gamma=DISCOUNT_FACTOR,
target_update_steps=TARGET_UPDATE_FREQ,
frames_per_epoch=FRAMES_PER_EPOCH,
frames_per_state = NUM_FRAMES_PER_STATE)
print("pass...")
if __name__ == '__main__':
main()