Skip to content

Commit eb49953

Browse files
committed
Charge new experiment
1 parent d20e151 commit eb49953

File tree

4 files changed

+25
-33
lines changed

4 files changed

+25
-33
lines changed
Binary file not shown.

run_eval.py

+1-19
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import cv2
22
from dqn_agent import DQNAgent
33
from tetris import Tetris
4-
from run import AgentConf
4+
from run_train import AgentConf
55
from keras.engine.saving import load_model
66

77

@@ -49,25 +49,7 @@ def run_eval(dir_name):
4949

5050
def enumerate_run_eval():
5151
dirs = [
52-
# 'tetris-20190731-172645-nn=[32, 32]-mem=15000-bs=512-e=1',
53-
# 'tetris-20190731-180835-nn=[32, 32]-mem=25000-bs=512-e=1',
54-
# 'tetris-20190731-184008-nn=[32, 32]-mem=25000-bs=64-e=1',
55-
# 'tetris-20190731-190022-nn=[32, 32]-mem=25000-bs=128-e=1',
56-
# 'tetris-20190731-200804-nn=[32, 32]-mem=5000-bs=256-e=1',
57-
# 'tetris-20190731-201826-nn=[32, 32]-mem=10000-bs=256-e=1',
58-
# 'tetris-20190731-203105-nn=[32, 32]-mem=15000-bs=256-e=1',
59-
# 'tetris-20190731-204235-nn=[32, 32]-mem=20000-bs=256-e=1',
60-
# 'tetris-20190731-205614-nn=[32, 32]-mem=25000-bs=256-e=1',
61-
# 'tetris-20190731-210946-nn=[32, 32]-mem=5000-bs=512-e=1',
62-
# 'tetris-20190731-212322-nn=[32, 32]-mem=10000-bs=512-e=1',
63-
# 'tetris-20190731-213758-nn=[32, 32]-mem=15000-bs=512-e=1',
64-
# 'tetris-20190731-215701-nn=[32, 32]-mem=20000-bs=512-e=1',
6552
'tetris-20190731-221411-nn=[32, 32]-mem=25000-bs=512-e=1',
66-
# 'tetris-20190731-223042-nn=[32, 32]-mem=5000-bs=1024-e=1',
67-
'tetris-20190731-224908-nn=[32, 32]-mem=10000-bs=1024-e=1',
68-
# 'tetris-20190731-230310-nn=[32, 32]-mem=15000-bs=1024-e=1',
69-
# 'tetris-20190731-232109-nn=[32, 32]-mem=20000-bs=1024-e=1',
70-
# 'tetris-20190731-234617-nn=[32, 32]-mem=25000-bs=1024-e=1',
7153
]
7254
for d in dirs:
7355
print(f"Evaluating dir '{d}'")

run.py renamed to run_train.py

+24-14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
from typing import Optional, Iterable
2-
import cv2
32

43
from dqn_agent import DQNAgent
54
from tetris import Tetris
@@ -13,13 +12,15 @@
1312
class AgentConf:
1413
def __init__(self):
1514
self.n_neurons = [32, 32]
15+
self.batch_size = 512
1616
self.activations = ['relu', 'relu', 'linear']
1717
self.episodes = 2000
18-
self.epsilon_stop_episode = 1500
18+
self.epsilon = 1.0
19+
self.epsilon_min = 0.0
20+
self.epsilon_stop_episode = 1600
1921
self.mem_size = 25000
2022
self.discount = 0.95
21-
self.replay_start_size = 5000
22-
self.batch_size = 1024
23+
self.replay_start_size = 2000
2324
self.epochs = 1
2425
self.render_every = None
2526
self.train_every = 1
@@ -33,14 +34,19 @@ def dqn(ac: AgentConf):
3334

3435
agent = DQNAgent(env.get_state_size(),
3536
n_neurons=ac.n_neurons, activations=ac.activations,
36-
epsilon_stop_episode=ac.epsilon_stop_episode, mem_size=ac.mem_size,
37-
discount=ac.discount, replay_start_size=ac.replay_start_size)
37+
epsilon=ac.epsilon, epsilon_min=ac.epsilon_min, epsilon_stop_episode=ac.epsilon_stop_episode,
38+
mem_size=ac.mem_size, discount=ac.discount, replay_start_size=ac.replay_start_size)
3839

3940
timestamp_str = datetime.now().strftime("%Y%m%d-%H%M%S")
40-
log_dir = f'logs/tetris-{timestamp_str}-nn={str(ac.n_neurons)}-mem={ac.mem_size}' \
41-
f'-bs={ac.batch_size}-e={ac.epochs}'
41+
# conf.mem_size = mem_size
42+
# conf.epochs = epochs
43+
# conf.epsilon_stop_episode = epsilon_stop_episode
44+
# conf.discount = discount
45+
log_dir = f'logs/tetris-{timestamp_str}-ms{ac.mem_size}-e{ac.epochs}-ese{ac.epsilon_stop_episode}-d{ac.discount}'
4246
log = CustomTensorBoard(log_dir=log_dir)
4347

48+
print(f"AGENT_CONF = {log_dir}")
49+
4450
scores = []
4551

4652
episodes_wrapped: Iterable[int] = tqdm(range(ac.episodes))
@@ -90,12 +96,16 @@ def dqn(ac: AgentConf):
9096

9197

9298
def enumerate_dqn():
93-
for bs in [256, 512, 1024]:
94-
for ms in [5000, 10_000, 15_000, 20_000, 25_000]:
95-
agent_conf = AgentConf()
96-
agent_conf.batch_size = bs
97-
agent_conf.mem_size = ms
98-
dqn(agent_conf)
99+
for mem_size in [10_000, 15_000, 20_000, 25_000]:
100+
for epochs in [1, 2, 3]:
101+
for epsilon_stop_episode in [1600, 1800, 2000]:
102+
for discount in [0.95, 0.97, 0.99]:
103+
conf = AgentConf()
104+
conf.mem_size = mem_size
105+
conf.epochs = epochs
106+
conf.epsilon_stop_episode = epsilon_stop_episode
107+
conf.discount = discount
108+
dqn(conf)
99109

100110

101111
if __name__ == "__main__":

0 commit comments

Comments
 (0)