[PyTorch] detach()와 clone()

김유상·2022년 12월 22일
0

torch.detach()와 torch.clone() 두 함수 모두 torch.tensor를 복사하는 방법이다.

detach(): 기존 텐서에서 gradient 전파가 안되는 텐서 생성, 따라서 no_grad()를 적용한 텐서와 기능적으로 차이가 없음

clone(): 기존 텐서의 내용을 복사한 텐서 생성

.data를 통해 텐서를 가져오는 방법도 존재하는데 아래 문장에서 알 수 있듯이 detach()함수는 기울기 연산의 정확성을 보장하기 때문에 굳이 .data로 텐서를 가져와 직접 계산할 필요가 없다는 것을 알 수 있다.

If you use Tensor.detach(), the gradient computation is guaranteed to be correct.

Referenced: https://subinium.github.io/pytorch-Tensor-Variable/, https://pytorch.org/blog/pytorch-0_4_0-migration-guide/#what-about-data

profile
continuous programming

0개의 댓글