[Pytorch] Error : Leaf variable has been moved into the graph interior 해결 방법 공유
2021. 1. 16. 21:02ㆍ분석 Python/Pytorch
torch에서 loss.backward()를 할 때 다음과 같은 에러를 경험을 했다
특정값에 inplace를 하게 되면 다음과 같은 에러가 생긴다.
필자는 아래와 같은 것이 loss에 들어가 있었다.
## 1
array[array==1] = 0.0
## 2
array[idx] = logit
그래서 필자는 다음과 같이 여러개의 글을 보고 수정했다.
하나는 새로운 객체로 만드는 것이다
애는 단순히 개수를 세주는 역할이라서 해결됐다.
array[array==1.0] = 1
count = array.sum()
두 번째는 torch.cat을 사용했다. (불확실!)
사용하지 않는 것과 사용하는 것들을 모아서 새로운 tensor를 만드니 작동했다.
물론 근데 update는 된 거지만 실제로 반영됐지는 아직 필요하다
torch.cat([torch.zeros(first, requires_grad=False),
torch.cat(use_tensor_list),
torch.zeros(total_n-first-len(ent_list), requires_grad=False)])
이런 식으로 일단은 해결을 했는데, 잘 됐으면 좋겠다!
discuss.pytorch.org/t/leaf-variable-has-been-moved-into-the-graph-interior/18679/6
728x90
'분석 Python > Pytorch' 카테고리의 다른 글
[Pytorch] gather 함수 설명 (특정 인덱스만 추출하기) (1) | 2021.03.17 |
---|---|
PyGAD + Pytorch + Skorch+ torch jit (0) | 2021.01.30 |
[Pytorch] How to Apply the Weight Initialization (Code) (0) | 2020.12.17 |
[Pytorch] torch 유용한 함수 정리하기 (0) | 2020.11.30 |
PyTorch Lighting + Ray tune (0) | 2020.11.07 |