Python TensorFlow是否通过内置优化进行区分?

Python TensorFlow是否通过内置优化进行区分?,python,tensorflow,Python,Tensorflow,我正在实现一个,我正在使用对优化器的调用。在更新生成器之前,最小化以更新我的鉴别器权重大约5步 我的问题是更新我的生成器的调用是否会隐式地通过对鉴别器值的5次更新进行反向支持 也许需要问的重要问题是,变量对象是否始终保留计算其赋值的图形 不幸的是,当我跑步时: a = tf.Variable(0.1) b = tf.Variable(0.0) op = tf.no_op() for _ in range(5): with tf.control_dependencies([op]):

我正在实现一个,我正在使用对
优化器的调用。在更新生成器之前,最小化
以更新我的鉴别器权重大约5步

我的问题是更新我的生成器的调用是否会隐式地通过对鉴别器值的5次更新进行反向支持

也许需要问的重要问题是,变量对象是否始终保留计算其赋值的图形

不幸的是,当我跑步时:

a = tf.Variable(0.1)
b = tf.Variable(0.0)

op = tf.no_op()
for _ in range(5):
  with tf.control_dependencies([op]):
    op = b.assign_add(a)

g = tf.gradients(b, a)

g是None,这表明变量忽略了导致赋值的图形。我希望梯度为0.5,或者至少它会保留最新作业的图表并计算为0.1…

这里a、b是自变量,因此梯度将为零;赋值只更改值,不创建依赖项

a = tf.Variable(0.1)
b = tf.Variable(0.0)

op = tf.no_op()
for _ in range(5):
    with tf.control_dependencies([op]):
        op = b.assign_add(a)

# If you create a op that depends on a, gradients won't be None
b1 = a*b
g = tf.gradients(b1, a)
我的问题是更新我的生成器的调用是否会隐式地通过对鉴别器值的5次更新进行反向支持


因此,如果设置依赖项,那么问题的答案是肯定的

这里a、b是自变量,因此梯度将为零;赋值只更改值,不创建依赖项

a = tf.Variable(0.1)
b = tf.Variable(0.0)

op = tf.no_op()
for _ in range(5):
    with tf.control_dependencies([op]):
        op = b.assign_add(a)

# If you create a op that depends on a, gradients won't be None
b1 = a*b
g = tf.gradients(b1, a)
我的问题是更新我的生成器的调用是否会隐式地通过对鉴别器值的5次更新进行反向支持


因此,如果设置依赖项,那么问题的答案是肯定的

当然,a*b可以解析为正确的梯度,但原因不正确。这个答案并没有给我提供任何新的信息。当然,a*b会解析为正确的梯度,但不是因为正确的原因。这个答案没有给我提供任何新的信息。