使用本文中的 A2C 代理,如何获取 的数值value_loss
,policy_loss
以及entropy_loss
何时更新权重?
我使用的模型是双头的,两个头共用一个树干。策略头输出形状为[number of actions, batch size]
,值头形状为[1, batch_size]
。当这些损失函数作为指标给出时,编译此模型会返回大小不兼容错误:
self.model.compile(optimizer=self.optimizer, metrics=[self._logits_loss, self._value_loss], loss=[self._logits_loss, self._value_loss])
两者self._value_loss
和self._policy_loss
都作为图执行,这意味着其中的所有变量都只是指向图节点的指针。我发现了一些示例,其中评估了张量对象(使用 eval())以从节点中获取值。我不理解它们,因为为了 eval() 一个 Tensor 对象,你需要给它一个 Session 但在 TensorFlow 2.x 中不推荐使用 Sessions。
另一个线索是,当train_on_batch()
从Keras 中的模型 API调用来训练模型时,该方法会返回损失。我不明白为什么,但它返回的唯一损失来自保单负责人。该头部的损失计算为,policy_loss - entropy_loss
但我的目标是分别获得所有三个损失以在图表中可视化它们。
欢迎任何帮助,我被卡住了。
达令说
相关分类