일반적으로 deep learning network를 통과 한 결과값은 해당 scope를 벗어나면 자동으로 release 된다.
하지만 결과로 받은 값을 다른 곳에 그대로 사용 할 경우 그 값은 release가 되지 않고 반복되면 메모리가 꽉 차서
프로그램이 죽어버리는 결과를 낳게 된다.
결과 값을 사용해야 할 경우에는 그대로 사용하지말고 .data 를 이용하여 값만을 복사하여 사용하자.
메모리 누수 발생 O
feature1 = net(transformed_img1)
feature2 = net(transformed_img2) result = 결과값이용함수(feature1, feature2)
메모리 누수 발생 X
feature1 = net(transformed_img1)
feature2 = net(transformed_img2)
tfeature1 = feature1.data[0]
tfeature2 = feature2.data[0]
result = 결과값이용함수(tfeature1, tfeature2)
'전공관련 > Deep Learning' 카테고리의 다른 글
[Pytorch] tensor의 차원을 바꿔보자 (0) | 2019.03.15 |
---|---|
[Pytorch] Multi GPU를 활용 해 보자 (2) | 2019.03.15 |
[Pytorch] torch.load 에서 학습시와 환경이 달라서 못읽을 경우 (3) | 2019.03.13 |
[Pytorch] pretrained-model 의 일부만을 불러와 보자 (0) | 2019.03.12 |
[Pytorch] 학습 한 모델을 저장하고 불러오자 (1) | 2019.03.12 |