-
Notifications
You must be signed in to change notification settings - Fork 40
/
utils.py
54 lines (48 loc) · 1.38 KB
/
utils.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
from IPython.display import clear_output as co
import time
def extract_actions(env):
return list(range(env.nA))
def run_environment_greedy(env, Q):
'''
Executes environment using a greedy policy on the input action value.
Environment is ran consecutively and interactively.
Parameters
----------
env : gym.core.Env
OpenAI Gym Environment instance.
Q : ActionValue
Action Value Instance.
'''
state = env.reset()
while(True):
co()
print('Current State: {}'.format(state))
action = Q.argmax(state)
env.render()
print('Greedy action: {}'.format(action))
state, reward, done, _ = env.step(action)
try:
input("Press Enter to continue...")
except Exception as e:
raw_input("Press Enter to continue...")
if done:
break
clear_output()
print('Current State: {}'.format(state))
env.render()
print('Finished!')
def display_episode_log(episode, num_episodes):
'''
Displays the current execution status, given a total number of episodes
and the episode number.
Parameters
----------
episode : int
Current episode
num_episodes : int
Total number of episodes
'''
clear_output()
print('Episode: {}/{}'.format(episode, num_episodes))
def clear_output():
co(wait=True)