TensorFlow 神经网络作为 API?

TensorFlow neural network as an API?

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

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

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

要将输入传递给 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 不依赖于优化器。

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

如果你使用的是强化学习模型,那么你只会在未来某个不确定的时间产生奖励,而当你运行更新会与这个例子略有不同,但一般性质的问题仍然是一样的。