tf.GradientTape записывает операции в eager/custom loop, чтобы потом tape.gradient(loss, variables) получить градиенты.
Разбор
По умолчанию следит за Variables; для тензоров — watch.
Аналог ручного backward PyTorch.
persistent=True для нескольких gradient вызовов.
Используют в custom training step.
Пример
with tf.GradientTape() as tape:
pred = model(x, training=True)
loss = loss_fn(y, pred)
grads = tape.gradient(loss, model.trainable_variables)
opt.apply_gradients(zip(grads, model.trainable_variables))
Итог
GradientTape — autograd API для кастомных циклов TF2.