17 / 22
Как работает автоматическое дифференцирование в PyTorch: динамический граф вычислений, `requires_grad`, `grad_fn` — и зачем нужны `retain_graph`, `detach` и `no_grad`?
PyTorch строит dynamic computational graph на лету: каждая операция над тензором с requires_grad=True записывает узел через grad_fn. backward() обходит граф по chain rule и заполняет .grad. retain_graph=True сохраняет граф для повторного backward, detach() обрывает gradient flow, torch.no_grad() отключает запись графа для inference.