OpenAI 基线:为什么同时使用“tf.stop_gradient”并指定“var_list”?

OpenAI baselines: Why simultaneously use `tf.stop_gradient` and specify `var_list`?

DQN 上的 OpenAI 基线代码中,tf.stop_gradient 在构建操作图期间用于目标网络的 q 值,以防止目标 q 值对最小化的贡献失利。 (第 213 行)

然而,调用minimize时,var_list被指定为仅tf.Variable范围在被优化的q网络下,不包括范围在目标下的变量网络。 (第 223 行)

我不确定他们为什么两者都做。这两种方法似乎达到了相同的结果。

这是多余的。 IMO 代码读起来更好——你知道梯度不会流过那个表达式,你也知道哪些变量会受到影响。

一个确实可以达到同等效果