我正在尝试在一个基于吃豆人的游戏中使用强化学习。我想使用Q学习技术来生成我的代理的操作。我计划使用openai-gym和keras库来训练我的模型,但我希望有一种方法可以保存我的模型并使用它,而不使用open-gym和keras库(在它被训练之后)。据我所知,Q学习可以用来生成状态-动作对,我想知道是否可以将这些组合的所有可能组合保存到Pacman这样的可解系统中。这似乎有点不切实际,所以如果你有任何其他想法,我很想听听。
发布于 2019-04-09 01:43:15
从你的问题看,你似乎有一个世界的模型(基于吃豆人的游戏),并且想要训练一个Q学习算法来解决环境问题。完成后,您希望保存模型。
要保存模型,完全取决于您使用的RL算法。当然,它们都可以保存,否则在现实世界中将毫无用处。
Tabular :Tabular -learning基本上将智能体的策略(Q值)存储到形状(S X A)的矩阵中,其中s是所有状态,a是所有可能的操作。解决环境问题后,只需将此矩阵另存为csv文件。我在我的GitHub上的强化学习下快速实现了这一点。
线性RL:如果状态空间和/或动作空间太大,可以使用函数近似。在这种情况下,您将构建一个近似于Q矩阵的线性模型。要保存此模型,您只需将此线性模型的权重保存为csv,甚至文本文件。
深度RL:与线性RL相同。你只需要保存神经网络的权重。如果网络是您自己编写的,那么将其另存为csv文件应该很简单。如果您使用的是tensorflow,则可以通过以下方式创建检查点:
saver = tf.train.Saver() # Builds the saver在你的训练结束的地方,放上:
saver.save(sess, model_path)对于我的GitHub上的深度确定性策略梯度,我也有一个实现。
https://stackoverflow.com/questions/55562034
复制相似问题