Skip to main content
 首页 » 编程设计

python之TensorFlow 神经网络作为 API

2024年12月31日32lvdongjie

我正在为游戏 2048 编写 AI。目前,我可以从浏览器中提取游戏状态并将 Action 发送到游戏中,但我不知道如何将其与 TensorFlow 集成。该项目的性质不利于训练数据,所以我想知道是否可以通过游戏状态,让网络扔掉一个 Action ,运行 Action ,重复直到游戏结束,然后它有训练吗?

请您参考如下方法:

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

从与 tensorflow 模型交互的角度来看,您只需将数据编码到 numpy 数组中,然后通过 feed_dict 传入sess.run的属性(property).

要将输入传递给 tensorflow 并获得结果,您将运行如下代码:

result = sess.run([logits], feed_dict={x:input_data}) 

这将执行前向传递,在不进行任何更新的情况下生成模型的输出。现在您将使用 results并使用它们在游戏中迈出下一步。

现在您已经有了操作的结果(例如标签),您可以执行更新步骤:

sess.run([update_op], feed_dict={x:input_data, y:labels}) 

就这么简单。请注意,您的模型将定义一个优化器(本例中为 update_op),但如果您不要求 tensorflow 对其进行计算(如第一个代码示例中所示),则不会发生任何更新。 Tensorflow 完全是关于依赖图的。优化器取决于输出 logits , 但计算 logits不依赖于优化器。

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

如果您使用的是强化学习模型,那么您只会在未来某个不确定的时间产生奖励,并且您运行更新的时间与此示例略有不同,但问题的一般性质保持不变.