반응형

gradient 3

[PyTorch] register_hook을 사용하여 Transformer 내부의 Attention matrix(Torch.Tensor)의 gradient 받아오기

register_hook을 사용하여 Transformer 내부의 Attention matrix(Torch.Tensor)의 gradient 받아오기 모델의 파라미터에 대한 grad가 아닌, Tensor object에 대한 grad는 계산만하고 날라가버린다. 즉, loss.backward()를 통해 backpropagation을 진행하면 중간 연산에 필요한 Tensor 변수의 gradient는 .grad로 저장이 안되고 계산이 끝나면 날라간다는 말이다. 따라서 Tensor object에 register_hook 함수로 gradient를 한번 붙잡아야 한다. 붙잡는다는 말은 gradient가 계산되었을 때, 날라가도록 두는게 아니라 다른 변수에 저장해야 한다는 말이다. 나는 중간 연산의 Tensor objec..

[벡터 미적분학] 레벨 집합에서 그래디언트와 접평면(Gradients and Tangent Planes to Level Sets)

레벨 집합에서 그래디언트와 접평면(Gradients and Tangent Planes to Level Sets) level surface와 함수 f의 그래디언트 사이의 관계를 살펴보겠습니다. level surface는 함수 f의 값을 상수로 두고, 그 상수를 만족하는 점들의 집합을 나타낸 것입니다. 그래디언트는 함수 f의 값이 가장 빠르게 변화하는 방향을 나타냅니다. 이에반해 level surface는 f의 값이 전혀 변하지 않는 방향으로 놓여져 있습니다. level surface와 그래디언트는 직교합니다. 그래디언트와 level set은 수직이라는 것을 알았습니다. 그래디언트에 수직인 평면인 접평면을 정의하는 법을 알아보겠습니다. 그래디언트와 level surface는 수직이므로, 둘을 내적하면 0이 ..

[PyTorch 튜토리얼] 자동 미분 - AUTOGRAD : Automatic differentiation - backward, requires_grad, detach, autograd

공부 목적으로 PyTorch 튜토리얼 홈페이지를 변역해보았습니다. Autograd: Automatic Differentiation — PyTorch Tutorials 1.7.0 documentation Note Click here to download the full example code Autograd: Automatic Differentiation Central to all neural networks in PyTorch is the autograd package. Let’s first briefly visit this, and we will then go to training our first neural network. The autogra pytorch.org 자동미분 - AUTOGRAD : ..

반응형