【问题标题】:Implement synchronous fit() or training function for tensorflow.js model为 tensorflow.js 模型实现同步 fit() 或训练函数
【发布时间】:2019-03-21 23:30:55
【问题描述】:

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

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

代理在游戏期间跟踪游戏状态,并在游戏完成后尝试根据游戏结束的方式使用这些状态的更新 Q 值来训练 NN。

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

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

链接到我的代码NNQPlayer.js

感谢您阅读我的问题。我希望有人可以在正确的方向上轻推我!

【问题讨论】:

  • 作为一个好的经验法则,尽量通过在此处提供直接相关的代码来缩小问题范围,而不是要求人们去看看 github 上的一堆代码,尽管您可以提供链接
  • 注明。以后我会更懂事的

标签: javascript node.js tensorflow tensorflow.js


【解决方案1】:

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

【讨论】:

  • 感谢您的回复,我有几个循环,结果我必须一直添加等待到顶部才能使其正常工作。
猜你喜欢
  • 2019-06-30
  • 2020-03-16
  • 2021-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多