[Pytorch] RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn

RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn

 

파이토치의 기울기 계산 기능(required_grad)을 끈(False) 상태인 tensor로 기울기 계산을 할 경우 발생하는 에러다.

 

파이토치에서는 required_grad의 상태가 True인 tensor에 대해서만 grad_fn을 생성하고, grad_fn을 통해 자동 미분/역전파 과정을 수행한다.

 

해결 방법

1. tensor를 생성할 때, requires_grad=True로 명시

example_tensor = torch.tensor([1.,2.,3.],requires_grad=True)


2. tensor 생성 후, x.requires_grad(True) 메소드를 사용하여 지정

example_tensor = torch.tensor([1.,2.,3.])
example_tensor.requires_grad_(True)