Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
with tf.Session() as sess: | |
game, possible_actions = create_environment() | |
totalScore = 0 | |
# Load the model | |
saver.restore(sess, "./models/model.ckpt") | |
game.init() | |
for i in range(1): |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class DDDQNNet: | |
def __init__(self, state_size, action_size, learning_rate, name): | |
self.state_size = state_size | |
self.action_size = action_size | |
self.learning_rate = learning_rate | |
self.name = name | |
# We use tf.variable_scope here to know which network we're using (DQN or target_net) | |
# it will be useful when we will update our w- parameters (by copy the DQN parameters) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### DOUBLE DQN Logic | |
# Use DQNNetwork to select the action to take at next_state (a') (action with the highest Q-value) | |
# Use TargetNetwork to calculate the Q_val of Q(s',a') | |
# Get Q values for next_state | |
Qs_next_state = sess.run(DQNetwork.output, feed_dict = {DQNetwork.inputs_: next_states_mb}) | |
# Calculate Qtarget(s') | |
q_target = sess.run(TargetNetwork.output, feed_dict = {TargetNetwork.inputs_: next_states_mb}) | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Get Q values for next_state | |
Qs_next_state = sess.run(TargetNetwork.output, feed_dict = {TargetNetwork.inputs_: next_states_mb}) | |
... | |
if tau > max_tau: | |
# Update the parameters of our TargetNetwork with DQN_weights | |
update_target = update_target_graph() | |
sess.run(update_target) | |
tau = 0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Instantiate the DQNetwork | |
DQNetwork = DQNNet(state_size, action_size, learning_rate, name="DQNetwork") | |
# Instantiate the target network | |
TargetNetwork = DQNNet(state_size, action_size, learning_rate, name="TargetNetwork") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This function helps us to copy one set of variables to another | |
# In our case we use it when we want to copy the parameters of DQN to Target_network | |
# Thanks of the very good implementation of Arthur Juliani https://github.com/awjuliani | |
def update_target_graph(): | |
# Get the parameters of our DQNNetwork | |
from_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, "DQNetwork") | |
# Get the parameters of our Target_network | |
to_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, "TargetNetwork") |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.