TensorFlow神经网络作为API?

时间:2018-05-16 22:49:57

标签: python tensorflow neural-network artificial-intelligence 2048

我正在为2048游戏编写AI。目前,我可以从浏览器中拉出游戏状态并将动作发送到游戏,但我不知道如何将其与TensorFlow集成。项目的性质不利于训练数据,所以我想知道是否可以通过游戏状态,让网络移动,移动,重复直到游戏结束,然后有没有做过培训?

1 个答案:

答案 0 :(得分:1)

这当然是可能的,也是微不足道的。您必须设置要使用的模型,我将假设已经构建了。

从与tensorflow模型交互的角度来看,您只需要将数据编组为numpy数组,以通过feed_dict的{​​{1}}属性传入。

要将输入传递给tensorflow并获得结果,您将运行以下内容:

sess.run

这将执行正向传递,产生模型的输出而不进行任何更新。现在,您将使用result = sess.run([logits], feed_dict={x:input_data}) 并使用它们来完成游戏中的下一步。

现在您已获得行动结果(例如标签),您可以执行更新步骤:

results

就这么简单。请注意,您的模型将定义一个优化器(在此示例中为sess.run([update_op], feed_dict={x:input_data, y:labels}) ),但如果您不要求tensorflow计算它(如第一个代码示例中那样),则不会进行更新。 Tensorflow就是一个依赖图。优化程序依赖于输出update_op,但计算logits不依赖于优化程序。

据推测,您将随机初始化此模型,因此第一批结果将随机生成,但之后的每一步都将受益于之前应用的更新。

如果您正在使用强化学习模型,那么您将在未来的某个不确定时间生成奖励,并且当您运行更新时,此示例会略有不同,但问题的一般性质仍然存在同样的。