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 代码读起来更好——你知道梯度不会流过那个表达式,你也知道哪些变量会受到影响。
一个确实可以达到同等效果
在 DQN 上的 OpenAI 基线代码中,tf.stop_gradient
在构建操作图期间用于目标网络的 q 值,以防止目标 q 值对最小化的贡献失利。 (第 213 行)
然而,调用minimize
时,var_list
被指定为仅tf.Variable
范围在被优化的q网络下,不包括范围在目标下的变量网络。 (第 223 行)
我不确定他们为什么两者都做。这两种方法似乎达到了相同的结果。
这是多余的。 IMO 代码读起来更好——你知道梯度不会流过那个表达式,你也知道哪些变量会受到影响。
一个确实可以达到同等效果