16.03.2021 Views

Advanced Deep Learning with Keras

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Deep Reinforcement Learning

q_value *= self.learning_rate

q_value += self.q_table[state, action]

self.q_table[state, action] = q_value

# dump Q Table

def print_q_table(self):

print(self.q_table)

print("Epsilon : ", self.epsilon)

# save trained Q Table

def save_q_table(self):

np.save(self.filename, self.q_table)

# load trained Q Table

def load_q_table(self):

self.q_table = np.load(self.filename)

# adjust epsilon

def update_epsilon(self):

if self.epsilon > self.epsilon_min:

self.epsilon *= self.epsilon_decay

Listing 9.5.2, q-frozenlake-9.5.1.py. The main Q-Learning loop for the

FrozenLake-v0 environment:

# loop for the specified number of episode

for episode in range(episodes):

state = env.reset()

done = False

while not done:

# determine the agent's action given state

action = agent.act(state, is_explore=args.explore)

# get observable data

next_state, reward, done, _ = env.step(action)

# clear the screen before rendering the environment

os.system('clear')

# render the environment for human debugging

env.render()

[ 292 ]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!