728x90
반응형
- 문제사항: matplotlib를 통해, 반복문으로 수 백개 단위의 plot을 출력 및 저장할 때, 메모리 오류로 코드가 정지됨
- 해결방안
- 방법 1: 가비지 컬랙터와 close() 사용
import matplotlib.pyplot as plt
import gc
fig = plt.plot()
fig.close() # 현재 figure를 삭제한다.
gc.collect() # 할당이 해제된 메모리 공간을 강제로 회수한다.
- 방법 2: Figure 전체를 지워버리는 방법[1]
import matplotlib.pyplot as plt
fig = plt.plot()
fig.close('all') # 모든 figure를 삭제한다.
plt.clf() # figure 창 내의 plot을 지우기
- 방법3: use(“agg”) 코드 사용[2][3]
import matplotlib
matplotlib.use("agg")
- 다른 방법은 효과 없고, 이 방법이 가장 효과 있었다.
- 알고보니 close()라는 함수가 fig 객체에 대한 메모리 공간을 회수해야 하지만, 이를 하지 못하는 버그가 있어 생긴 문제 였다.[3] 이는 Windows 환경에서 GUI Backend를 사용하며 발생하는 버그로, use(“agg”)는 Non-GUI Backend를 사용하도록 하는 함수이다.
- 따라서, 1,2번이 안 된다면, 3번 방법을 사용하면 된다.
반응형
'컴퓨터 관련 > 문제해결' 카테고리의 다른 글
한글 파일 크기 줄이는 방법 (0) | 2024.04.07 |
---|---|
SROS2에서 [rcl]: Failed to fini publisher for node: 1 문제 해결하기 (0) | 2024.03.20 |
Kali Linux에서 apt가 되지 않을 때, 시도 할 수 있는 방법 (0) | 2023.09.10 |
윈도우 원격 데스크탑의 포트 번호 변경하기 (0) | 2023.08.16 |
Chrome Remote Desktop 접속 시 화면 가리기 (커튼 모드 설정) (0) | 2023.08.15 |