为tensorflow.js模型实现同步fit()或训练函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为tensorflow.js模型实现同步fit()或训练函数相关的知识,希望对你有一定的参考价值。

我有一个代理人使用tensorflow.js神经网络玩游戏'tic tac toe',试图模仿Q函数的行为。

我正在关注此旅行报告,但使用TFJS和节点:Part 4 — Neural Network Q Learning

代理在游戏期间跟踪游戏状态并且在游戏完成之后尝试根据游戏结束的方式训练NN具有针对那些状态的更新的Q值。

我的问题是:fit()是一个异步函数,我玩游戏的脚本运行一个游戏循环,游戏循环完成,然后我得到一堆UnhandledPromiseRejectionWarning,因为所有以前的游戏调用fit()是正在进行中。

有没有办法在每场比赛结束时同步训练我的模型。也许使用model.makeTrainFunction()或者有没有办法使用优化器? (在cart-pole example中找到optimizer.applyGradients())

链接到我的代码NNQPlayer.js

感谢您阅读我的问题。我希望有人能给我一个正确方向的推动!

答案

fit是一个异步操作。如果你正在寻找一种方法多次调用fit,你只需要在调用await之前使用fit。这将确保fit操作在另一次调用fit之前完成。你可以看看这个answer

以上是关于为tensorflow.js模型实现同步fit()或训练函数的主要内容,如果未能解决你的问题,请参考以下文章

将 Keras 模型导入 TensorFlow.js

Tensorflow.js 模型仅预测相同的值

tensorflow js加载gru模型

使用 React Native 和 Tensorflow.js 对实时视频进行预测

如何在 nodejs (tensorflow.js) 中训练模型?

加载了 tensorflow.js 的图模型可以在 GPU 上使用数据而不先将其传输到 CPU 吗?