为什么角色中的可训练变量没有梯度?

时间:2018-09-28 00:07:56

标签: python tensorflow reinforcement-learning

我自己在tensorflow中实现了ddpg,却遇到了一个神秘的错误,这花了我几天的时间思考,但仍然没有结果。

我将演员损失定义为

actor_loss = - tf.reduce_mean(self.critic_with_actor.Q)

其中self.critic_with_actor.Qcritic的输出,它的输入是从actor获得的动作之一。问题是,actor不会以任何方式接收任何渐变。这是相关的张量板信息的快照: enter image description here

其中Tanhactor的输出张量,即action选择的actorBiasAddTanh的输入张量,其他只是actor中的可训练变量。如您所见,Tanh有渐变,而其他渐变则没有。 这是我的主要演员评论网络的架构 enter image description here

其中critic_1对应于代码中的self.critic_with_actor,该代码与critic共享变量。

这是我的代码https://github.com/xlnwel/ddpg-bipedal/blob/f1f6ed8842f7f13254f77ff37d9d0d340a4650e0/tensorflow-imp/ddpg_tf.py#L37-L41。即使该错误存在,代码也应该能够运行(如readme.md所建议的那样)。

0 个答案:

没有答案