bskyvision RSS 태그 관리 글쓰기 방명록
2020-06-10 19:33:38
728x90

저는 윈도우즈 10, 아나콘다 환경에서 파이썬 코드를 실행하다가 종종 다음과 같은 에러를 만났었습니다. 

 

 

메모리에러 즉, 램(RAM) 메모리가 부족해서 생기는 오류입니다. 참고로 램은 주기억장치로서 이 공간이 커야 동시에 많은 일을 처리할 수 있습니다. 메모리에러의 해결법은 크게 네 가지입니다. 

 

1. 그냥 다시 실행해본다

어떤 경우에는 그냥 동일한 코드를 다시 실행했을 뿐인데도 더이상 오류가 안 뜨기도 하더라고요. 그런데 만약 코드를 다시 실행했는데도, 컴퓨터를 재부팅하고 실행했는데도 이 에러가 뜬다면, 다음과 같이 한 번 해보시길 바랍니다. 

 

2. 배치사이즈(batch_size)를 줄인다

딥러닝 모델 훈련 때 배치사이즈가 너무 크면, 한번에 많은 데이터를 처리해야하기 때문에 램의 메모리를 순간적으로 다 소진해버릴 수 있습니다. 따라서, 배치사이즈를 줄인다면 이 문제를 겪지 않을 수도 있습니다. 그런데 배치사이즈를 줄이면 안되는 상황이라면 다음 3번과 같이 해보시길 바랍니다. 

 

3. 페이징 파일 크기를 증가시킨다

윈도우즈 10을 사용하시고 있는 경우에, 윈도우즈 키 옆에 SystemPropertiesAdvanced를 입력하면 다음과 같은 창이 뜹니다. 

 

 

여기서 성능의 설정을 클릭합니다. 그 다음에 성능 옵션에서 고급으로 들어가면 다음과 같은 화면이 뜹니다. 

 

 

 

여기서 가상 메모리 파트의 변경을 클릭합니다. 페이징 파일 크기를 변경하기 위함입니다. 여기에 "페이징 파일은 Windows에서 RAM처럼 사용하는 하드 디스크의 영역입니다"라고 간단히 설명되어 있습니다. 

 

 

사용자 지정 크기에서 처음 크기는 램 크기의 1.5배로 해주고, 최대 크기는 처음 크기의 3배로 해줍니다. 예를 들어, 8GB의 램이라면 1GB가 1024MB이므로 1024x8x1.5=12288을 처음 크기에 입력해주고, 최대 크기는 그것의 3배인 36864를 입력해줍니다. 어떻게 이러한 계산법이 생긴 것인지는 저도 잘 모르겠지만, 참고자료 [1]에서 이렇게 해주라고 하더군요. 아무튼 이렇게 설정한 후에 컴퓨터를 재부팅합니다. 저도 이렇게 했더니 에러가 더이상 안났습니다. 

 

4. RAM을 추가 장착한다

아예 한번에 더 많은 일을 처리할 수 있게 하는 것이죠. 8GB 램이라면 16GB로 업그레이드시켜줍니다. 어쩌면 이것이 근본적으로 가장 좋은 방법이라고 할 수 있습니다. 

 

여러분의 에러도 해결되었길 바랍니다. 끝까지 읽어주셔서 감사합니다. 항상 질문과 지적 및 토론에 열려 있으니 댓글 남겨주시면 살펴보겠습니다. 

 

 

b스카이비전의 추천글 

램(RAM)이란 무엇인가? 

삼성 오디세이 노트북 램 교체(업그레이드)하기

 [python] KeyError: 'mae' 또는 KeyError: 'acc'를 만났을 때 해결방법

 

 

<참고자료>

[1] https://stackoverflow.com/questions/57507832/unable-to-allocate-array-with-shape-and-data-type, stackoverflow, "Unable to allocate array with shape and data type"

[2] https://trainingsupport.microsoft.com/en-us/tcmpd/forum/all/i-am-getting-below-error-memoryerror-unable-to/badac065-c35b-4853-9122-e7607e40ecae, 마이크로소프트 trainingsupport, "I am getting below error--"MemoryError: Unable to allocate array with shape (16519, 16404) and data type float64""

댓글

방문해주신 모든 분들을 환영합니다.

* 글을 읽던 중에 궁금했던 부분은 질문해주세요.

* 칭찬, 지적, 의문, 격려, 감사표현 등을 남겨주세요.

* 최대한 답변 드리도록 노력하겠습니다.

* 욕설과 광고를 담은 댓글은 가차없이 삭제합니다.


  1. BlogIcon DNA구너@2020.06.11 23:58 신고 ~$ 캐글 노트북에서 30기가 달아주는건 폼은 아닌 거 같아요. [댓글주소]  [수정/삭제]  [답글작성]
  2. BlogIcon 이육일공@2021.08.19 14:02 ~$ 저도 yolov5 모델을 훈련 코드를 실행하면서 같은 오류를 접해 페이징 파일의 크기를 늘려 해결했었습니다.
    하지만 제 환경에서는 nvidia 그래픽카드를 사용했고 cuda를 활용했기 때문에 모델의 훈련이 그래픽카드에서 진다고 생각했는데 그래픽 카드가 아닌 dram을 페이징 파일의 크기를 늘려줘서 오류가 해결되어 의문이 남아 구글링 중이었습니다.

    혹시 제가 잘못 알고 있는 부분이 있을까요? ㅠㅠ
    baskyvision 님은 gpu가 장착되어있는 환경에서 모델 훈련하시다가 저런 오류를 접하신건가요? [댓글주소]  [수정/삭제]  [답글작성]
guest@이름 ~$
guest@패스워드 ~$
guest@홈페이지주소작성 ~$

guest@댓글작성 ~$




bskyvision. Designed by bskyvision.