title: 用keras搭建DQN
date: 2018-09-14 20:25:30
tags: reinforecementLearning
categories: 日志
dqn总结:
最近时间虽然一直看这个dqn代码,虽然看懂了,但是思路却一直不明确,无法自己复写出自己的代码,所以就想写一篇博客来整理一下思路。如果这篇文章写完了,应该思路就清晰了。
本文主要是看了莫烦的教学视频,在视频中,老师(尊称一声老师O(∩_∩)O哈哈~)是用tensoflow1.2来搭建框架的。本人在看懂了代码后,认为DQN中采用了两个模型,此时用tensorflow来完成这些网络的灵活搭建时当让是最好的选择,但是在我看来,似乎keras中的函数式模型似乎也可以做到啊(Sequential模型肯定是不能完成这件事的),所以我就想用keras来重写这个代码,以此来验证自己是不是真的把DQN的实现过程搞懂了。(突然发现代码粘贴错了,github上代码上传的也是错的。。。。。一个多月才发现,还有人浏览这篇文章,尴尬极了)
#首先我们要构建一个DQN类
class DQN:
#之后我们需要构建网络
def _build_net(self):
pass
#学习需要经验池,这个学习是off-learning
def store_transition(self,s,a,r,s_):
pass
#进行学习
def learn(self):
pass
#动作决策
def choose_action(self,observation):
pass
以上就是我们要完成的东西了,按四个部分一次完成就可以实现DQN类了
但是我们还要重写类方法中__init__
方法:
def __init__(
self,
n_actions,
n_features,
learning_rate=0.01,
reward_decay=0.9,
e_greedy=0.9,
replace_target_iter=300,
memory_size=500,
batch_size=32,
e_greedy_increment=None,
output_graph=False,
):
self.