requires_grad=True로 설정된 텐서의backward() 함수를 이용해 기울기를 계산할 수 있음requires_grad 속성 지정requires_grad 파라미터를 True로 설정하여 기울기 계산 기능 활성화import torch
x = torch.tensor(2.0, requires_grad=True)
print(x) # tensor(2., requires_grad=True)
backward() 호출backward()를 호출하면, 텐서의 grad 속성에 기울기 값이 저장됨# 역전파 전
print(x.grad) # None
# 연산식 지정
y = x ** 2 + 3 * x
# 역전파 실시
y.backward()
# 역전파 후
print(x.grad) # tensor(7.)
torch.autograd.grad() 함수를 사용하여 기울기를 계산할 수 있음x = torch.tensor(2.0, requires_grad=True)
print(x) # tensor(2., requires_grad=True)
y = x ** 2 + 3 * x
res = torch.autograd.grad(y, x)
print(res) # (tensor(7.0))
detach() 함수를 이용# 미분 기능 설정
x = torch.tensor(2.0, requires_grad=True)
y = x ** 2
y.backward()
print(x.grad) # tensor(4.)
# 미분 기능 해제
x = torch.tensor(2.0, requires_grad=True)
x.detach_() # 언더바 포함 명시(detach_) 시 inplace 효과
y = x ** 2
try:
y.backward()
except RuntimeError:
print("기울기 추적 불가") # 기울기 추적 불가
*이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.