我有一个使用tensorflow.js神经网络玩'tic tac toe'游戏的代理,试图模仿Q函数的行为。
我正在关注此旅行报告,但使用的是TFJS和节点:Part 4 — Neural Network Q Learning
代理会在游戏过程中跟踪游戏状态,并在游戏完成后尝试根据这些游戏的结束方式使用这些状态的更新的Q值训练NN。
我的问题是:fit()是一个异步函数,我玩游戏的脚本运行了一个游戏循环,游戏循环完成了,然后我得到了一堆UnhandledPromiseRejectionWarning,因为以前所有游戏中对fit()的调用都是进行中。
有没有办法在每场比赛结束时同步训练我的模型。也许使用model.makeTrainFunction()还是有使用优化器的方法? (在cart-pole example中找到的optimizer.applyGradients())
链接到我的代码NNQPlayer.js
感谢您阅读我的问题。我希望有人能朝着正确的方向推动我!
最佳答案
fit
是异步操作。如果您正在寻找一种多次调用fit
的方式,则只需在调用await
之前使用fit
。这样可以确保fit
操作在再次调用fit
之前完成。你可以看看这个answer
关于javascript - 为tensorflow.js模型实现同步fit()或训练功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55276575/