使用tensorflow快速搭建 DQN环境
本文章主要是用来快速搭建DQN环境的,个人感觉写的还是比较清晰的,借鉴了莫烦python和其他友友们的网络搭建方法。我的代码是有两个agent的,两个玩家交替更新,代码在: https://github.com/nsszlh/tensorflow-DQN
1建立网络
基本需要使用的参数
class AgentNet():
def __init__(
self,
name,
n_action,
n_state,
learning_rate=0.001,
reward_decay=0.9,
e_greedy=0.9,
replace_target_iter=300,
memory_size=50000,
batch_size=32,
e_greedy_increment=None
):
self.n_action = n_action #action个数
self.n_state = n_state #state 个数
self.alpha = learning_rate #学习率
self.gamma = reward_decay # QLearning函数参数
self.epsilon_max = e_greedy #贪心
self.replace_target_iter = replace_target_iter # 每iter次复制一次eval网络参数给target网络
self.memory_size = memory_size #记忆库容量
self.batch_size = batch_size #每批学习的个数
self.epsilon_increment = e_greedy_increment #逐步增大贪心比例
self.epsilon = 0 if e_greedy_increment is not None else self.epsilon_max
self.name = name #给多个agent建立网络时
self.sess = sess
self.build()
self.learn_step_counter = 0
self.memory = []
self.losses = []
'''复制网络'''
t_params = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope='target_net')
e_params = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope='eval_net')
with tf.variable_scope('hard_replacement'):
self