大家好,我们又见面了,我是你们的老朋友全栈君。
第一张图片中的代码有误:
第71行:critic_target网络基于actor_target网络的估计输出最大Q值,因此不需要再次执行max操作(但在DQN中,我们确实需要那个max操作,因为在DQN中,下一最大Q值是由critic_target本身直接估计的(Q值函数))。
第72行:DDPG中的critic(Q函数)可以直接输出相对输入动作的Q值,因此不需要聚集动作索引相关的Q值。
第74行:因为优化器会累积梯度值,所以使用optimizer.zero_grad()清除它(而不是使用network.zero_grad)。
第75行:优化器应该调用step()函数来反向传播误差。
别忘了添加最终状态的判定:1- dones。

第79行:在actor学习部分,critic_local的输入动作不是样本动作,而是由actor估计的动作(要注意这一点)。此外,它应该计算其平均值。最后,我们希望最大化性能,但优化器用于最小化目标,因此我们必须设置负号。
在soft_update中,记得使用数据的属性进行复制。

发布者:全栈程序员栈长,转载请注明出处:https://www.php.cn/link/8eb7be5a13cc39a3e56b78aba08b2039
以上就是DDPG Project「建议收藏」的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号