1

したがって、ここでは間接的な変更は機能しないと述べています。つまり、変更は目に見えないということです (目に見えない変更とはどういう意味ですか?)

しかし、このコードは勾配を正しく計算します:

import tensorflow as tf


class C:
    def __init__(self):
        self.x = tf.Variable(2.0)

    @tf.function
    def change(self):
        self.x.assign_add(2.0)

    @tf.function
    def func(self):
        self.change()
        return self.x * self.x


c = C()
with tf.GradientTape() as tape:
    y = c.func()
print(tape.gradient(y, c.x)) # --> tf.Tensor(8.0, shape=(), dtype=float32)

ここで何か不足していますか?

ありがとう

4

1 に答える 1